Plug-In „infer_storage_schema“
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 Speicherverbindungszeichenfolgen für den Zugriff an. Jeder Speicher Verbindungszeichenfolge gibt die Autorisierungsmethode an, die für den Zugriff auf den Speicher verwendet werden soll. Abhängig von der Autorisierungsmethode müssen dem Prinzipal möglicherweise Berechtigungen für den externen Speicher erteilt werden, um den Schemarückschluss 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 |
SAS-Token (Shared Access) | Liste + Lesen | Diese Authentifizierungsmethode wird in Gen1 nicht unterstützt. |
Microsoft Entra Zugriffstoken | ||
Speicherkonto-Zugriffsschlüssel | Diese Authentifizierungsmethode wird in Gen1 nicht unterstützt. |
Syntax
evaluate
infer_storage_schema(
Optionen)
Erfahren Sie mehr über Syntaxkonventionen.
Parameter
Name | Typ | Erforderlich | BESCHREIBUNG |
---|---|---|---|
Optionen | dynamic |
✔️ | Ein Eigenschaftenbehälter, der die Eigenschaften der Anforderung angibt. |
Unterstützte Eigenschaften der Anforderung
Name | Typ | Erforderlich | BESCHREIBUNG |
---|---|---|---|
StorageContainers | dynamic |
✔️ | Ein Array von Speicherverbindungszeichenfolgen , die den 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 Probleme beim Lesen von Daten 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 Schemarückschlussstrategie. 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. Standardwert: last . |
Gibt zurück
Das infer_storage_schema
Plug-In gibt eine einzelne Ergebnistabelle zurück, die eine einzelne Zeile/Spalte mit einer CSL-Schemazeichenfolge enthält.
Hinweis
- Speichercontainer-URI-Schlüssel müssen zusätzlich zu Lesen über die Berechtigungen für List verfügen.
- Die Schemarückschlussstrategie "all" ist ein sehr "teurer" Vorgang, da sie das Lesen aller gefundenen Artefakte und das Zusammenführen ihres Schemas impliziert.
- Einige zurückgegebene Typen sind möglicherweise nicht die tatsächlichen Typen aufgrund falscher Typschätzung (oder als Ergebnis des Schemazusammenführungsprozesses). Aus diesem Grund 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)
Ausgabe
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 einer 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'
)
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für