Freigeben über


Plug-In „infer_storage_schema“

Gilt für: ✅Microsoft Fabric✅Azure Data Explorer

Dieses Plug-In leitet das Schema externer Daten ab und gibt es als CSL-Schemazeichenfolge zurück. Die Zeichenfolge kann beim Erstellen externer Tabellen verwendet werden. Das Plug-In wird mit dem evaluate Operator aufgerufen.

Authentifizierung und Autorisierung

In den Eigenschaften der Anforderung geben Sie speicher Verbindungszeichenfolge für den Zugriff an. Jeder Speicher Verbindungszeichenfolge gibt die Autorisierungsmethode an, die für den Zugriff auf den Speicher verwendet werden soll. Je nach Autorisierungsmethode muss dem Prinzipal möglicherweise Berechtigungen für den externen Speicher erteilt werden, um die Schema-Ableitung durchzuführen.

In der folgenden Tabelle sind die unterstützten Authentifizierungsmethoden und alle erforderlichen Berechtigungen nach Speichertyp aufgeführt.

Authentifizierungsmethode Azure Blob Storage / Data Lake Storage Gen2 Data Lake Storage Gen1
Identitätswechsel Leser von Speicherblobdaten Leser
Token für gemeinsamen Zugriff (SAS) Liste + Lesen Diese Authentifizierungsmethode wird in Gen1 nicht unterstützt.
Microsoft Entra-Zugriffstoken
Zugriffsschlüssel für das Speicherkonto Diese Authentifizierungsmethode wird in Gen1 nicht unterstützt.

Syntax

evaluateinfer_storage_schema( Optionen )

Erfahren Sie mehr über Syntaxkonventionen.

Parameter

Name Type Erforderlich Beschreibung
Optionen dynamic ✔️ Ein Eigenschaftenbehälter, der die Eigenschaften der Anforderung angibt.

Unterstützte Eigenschaften der Anforderung

Name Type Erforderlich Beschreibung
StorageContainers dynamic ✔️ Ein Array von Speicher Verbindungszeichenfolge s, die präfix-URI für gespeicherte Datenartefakte darstellen.
DataFormat string ✔️ Eines der unterstützten Datenformate.
FileExtension string Wenn angegeben, überprüft die Funktion nur Dateien, die mit dieser Dateierweiterung enden. Die Angabe der Erweiterung kann den Prozess beschleunigen oder Datenleseprobleme beseitigen.
FileNamePrefix string Wenn angegeben, überprüft die Funktion nur Dateien, die mit diesem Präfix beginnen. Die Angabe des Präfixes kann den Prozess beschleunigen.
Mode string Die Schema-Ableitungsstrategie. Ein Wert von: any, last, all. Die Funktion leitet das Datenschema aus der ersten gefundenen Datei, aus der letzten geschriebenen Datei oder aus allen Dateien ab. Der Standardwert ist last.
InferenceOptions dynamic Weitere Rückschlussoptionen. Gültige Optionen: UseFirstRowAsHeader für durch Trennzeichen getrennte Dateiformate. Zum Beispiel: 'InferenceOptions': {'UseFirstRowAsHeader': true}

Gibt zurück

Das infer_storage_schema Plug-In gibt eine einzelne Ergebnistabelle zurück, die eine einzelne Zeile/Spalte enthält, die CSL-Schemazeichenfolge enthält.

Hinweis

  • Geheime Schlüssel für den Speichercontainer-URI müssen zusätzlich zum Lesen über die Berechtigungen für "List" verfügen.
  • Schemainference-Strategie "all" ist eine sehr "teure" Operation, da es impliziert, aus allen Artefakten zu lesen, die gefunden und zusammengeführt werden.
  • Einige zurückgegebene Typen sind möglicherweise nicht die tatsächlichen Typen als Ergebnis einer falschen Typerraten (oder, als Folge des Schemazusammenführungsprozesses). Deshalb sollten Sie das Ergebnis sorgfältig überprüfen, bevor Sie eine externe Tabelle erstellen.

Beispiel

let options = dynamic({
  'StorageContainers': [
    h@'https://storageaccount.blob.core.windows.net/MobileEvents;secretKey'
  ],
  'FileExtension': '.parquet',
  'FileNamePrefix': 'part-',
  'DataFormat': 'parquet'
});
evaluate infer_storage_schema(options)

Output

CslSchema
app_id:string, user_id:long, event_time:datetime, country:string, city:string, device_type:string, device_vendor:string, ad_network:string, campaign:string, site_id:string, event_type:string, event_name:string, organic:string, days_from_install:int, revenue:real

Verwenden Sie das zurückgegebene Schema in der definition der externen Tabelle:

.create external table MobileEvents(
    app_id:string, user_id:long, event_time:datetime, country:string, city:string, device_type:string, device_vendor:string, ad_network:string, campaign:string, site_id:string, event_type:string, event_name:string, organic:string, days_from_install:int, revenue:real
)
kind=blob
partition by (dt:datetime = bin(event_time, 1d), app:string = app_id)
pathformat = ('app=' app '/dt=' datetime_pattern('yyyyMMdd', dt))
dataformat = parquet
(
    h@'https://storageaccount.blob.core.windows.net/MovileEvents;secretKey'
)