infer_storage_schema, wtyczka
Dotyczy: ✅Microsoft Fabric✅Azure Data Explorer
Ta wtyczka wywnioskuje schemat danych zewnętrznych i zwraca go jako ciąg schematu CSL. Ciąg może być używany podczas tworzenia tabel zewnętrznych. Wtyczka jest wywoływana z operatorem evaluate
.
Uwierzytelnianie i autoryzacja
We właściwościach żądania należy określić parametry połączenia magazynu, aby uzyskać dostęp. Każdy parametry połączenia magazynu określa metodę autoryzacji, która ma być używana do uzyskiwania dostępu do magazynu. W zależności od metody autoryzacji podmiot zabezpieczeń może wymagać udzielenia uprawnień do magazynu zewnętrznego w celu wykonania wnioskowania schematu.
W poniższej tabeli wymieniono obsługiwane metody uwierzytelniania i wszelkie wymagane uprawnienia według typu magazynu.
Metoda uwierzytelniania | Azure Blob Storage / Data Lake Storage Gen2 | Data Lake Storage Gen1 |
---|---|---|
Personifikacja | Czytelnik danych obiektu BLOB usługi Storage | Czytelnik |
Token dostępu współdzielonego (SAS) | Lista i odczyt | Ta metoda uwierzytelniania nie jest obsługiwana w usłudze Gen1. |
Token dostępu firmy Microsoft Entra | ||
Klucz dostępu do konta magazynu | Ta metoda uwierzytelniania nie jest obsługiwana w usłudze Gen1. |
Składnia
evaluate
infer_storage_schema(
Opcje )
Dowiedz się więcej na temat konwencji składni.
Parametry
Nazwisko | Type | Wymagania | opis |
---|---|---|---|
Opcje | dynamic |
✔️ | Torba właściwości określająca właściwości żądania. |
Obsługiwane właściwości żądania
Nazwisko | Type | Wymagania | opis |
---|---|---|---|
StorageContainers | dynamic |
✔️ | Tablica parametry połączenia magazynu reprezentująca identyfikator URI prefiksu dla przechowywanych artefaktów danych. |
DataFormat | string |
✔️ | Jeden z obsługiwanych formatów danych. |
Rozszerzenie pliku | string |
Jeśli zostanie określony, funkcja skanuje tylko pliki kończące się tym rozszerzeniem pliku. Określenie rozszerzenia może przyspieszyć proces lub wyeliminować problemy z odczytywaniem danych. | |
FileNamePrefix | string |
Jeśli zostanie określony, funkcja skanuje tylko pliki rozpoczynające się od tego prefiksu. Określenie prefiksu może przyspieszyć proces. | |
Tryb | string |
Strategia wnioskowania schematu. Wartość: any , last , all . Funkcja wywnioskuje schemat danych z pierwszego znalezionego pliku, z ostatniego zapisanego pliku lub ze wszystkich plików odpowiednio. Domyślna wartość to last . |
|
WnioskowanieOpcje | dynamic |
Więcej opcji wnioskowania. Prawidłowe opcje: UseFirstRowAsHeader dla rozdzielonych formatów plików. Przykład: 'InferenceOptions': {'UseFirstRowAsHeader': true} . |
Zwraca
Wtyczka infer_storage_schema
zwraca pojedynczą tabelę wyników zawierającą pojedynczy wiersz/kolumnę zawierającą ciąg schematu CSL.
Uwaga
- Klucze tajne identyfikatora URI kontenera magazynu muszą mieć uprawnienia dla listy oprócz opcji Odczyt.
- Strategia wnioskowania schematu "wszystko" jest bardzo "kosztowną" operacją, ponieważ oznacza odczytywanie ze wszystkich znalezionych artefaktów i scalanie ich schematu.
- Niektóre zwracane typy mogą nie być rzeczywiste w wyniku błędnego zgadywania typu (lub w wyniku procesu scalania schematu). Dlatego należy dokładnie przejrzeć wynik przed utworzeniem tabeli zewnętrznej.
Przykład
let options = dynamic({
'StorageContainers': [
h@'https://storageaccount.blob.core.windows.net/MobileEvents;secretKey'
],
'FileExtension': '.parquet',
'FileNamePrefix': 'part-',
'DataFormat': 'parquet'
});
evaluate infer_storage_schema(options)
Wyjście
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 |
Użyj zwróconego schematu w definicji tabeli zewnętrznej:
.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'
)