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
evaluate
infer_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'
)