wtyczka infer_storage_schema_with_suggestions
Dotyczy: ✅Microsoft Fabric✅Azure Data Explorer
Ta infer_storage_schema_with_suggestions
wtyczka wywnioskuje schemat danych zewnętrznych i zwraca obiekt JSON. Dla każdej kolumny obiekt zawiera wnioskowany typ, zalecany typ i zalecane przekształcenie mapowania. Zalecany typ i mapowanie są dostarczane przez logikę sugestii, która określa optymalny typ przy użyciu następującej logiki:
- Kolumny tożsamości: jeśli wywnioskowany typ kolumny to
long
, a nazwa kolumny kończy się ciągiemid
, sugerowanym typem jeststring
to, że zapewnia zoptymalizowane indeksowanie kolumn tożsamości, w których są wspólne filtry równości. - Kolumny daty/godziny systemu Unix: jeśli wywnioskowany typ kolumny to
long
i jeden z przekształceń mapowania daty/godziny na datę/godzinę powoduje wygenerowanie prawidłowej wartości daty/godziny, sugerowany typ jestdatetime
i sugerowaneApplicableTransformationMapping
mapowanie jest tym, który wygenerował prawidłową wartość daty/godziny.
Wtyczka jest wywoływana z operatorem evaluate
. Aby uzyskać schemat tabeli, który używa wywnioskowanych schematów dla tworzenia i modyfikowania tabel zewnętrznych usługi Azure Storage bez sugestii, użyj wtyczki infer_storage_schema .
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_with_suggestions(
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 obsługiwanych do pozyskiwania |
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_with_suggestions
zwraca pojedynczą tabelę wyników zawierającą pojedynczy wiersz/kolumnę zawierającą ciąg JSON.
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 ich użyciem.
Przykład
let options = dynamic({
'StorageContainers': [
h@'https://storageaccount.blob.core.windows.net/MobileEvents;secretKey'
],
'FileExtension': '.json',
'FileNamePrefix': 'js-',
'DataFormat': 'json'
});
evaluate infer_storage_schema_with_suggestions(options)
Przykładowe dane wejściowe
{
"source": "DataExplorer",
"created_at": "2022-04-10 15:47:57",
"author_id": 739144091473215488,
"time_millisec":1547083647000
}
Wyjście
{
"Columns": [
{
"OriginalColumn": {
"Name": "source",
"CslType": {
"type": "string",
"IsNumeric": false,
"IsSummable": false
}
},
"RecommendedColumn": {
"Name": "source",
"CslType": {
"type": "string",
"IsNumeric": false,
"IsSummable": false
}
},
"ApplicableTransformationMapping": "None"
},
{
"OriginalColumn": {
"Name": "created_at",
"CslType": {
"type": "datetime",
"IsNumeric": false,
"IsSummable": true
}
},
"RecommendedColumn": {
"Name": "created_at",
"CslType": {
"type": "datetime",
"IsNumeric": false,
"IsSummable": true
}
},
"ApplicableTransformationMapping": "None"
},
{
"OriginalColumn": {
"Name": "author_id",
"CslType": {
"type": "long",
"IsNumeric": true,
"IsSummable": true
}
},
"RecommendedColumn": {
"Name": "author_id",
"CslType": {
"type": "string",
"IsNumeric": false,
"IsSummable": false
}
},
"ApplicableTransformationMapping": "None"
},
{
"OriginalColumn": {
"Name": "time_millisec",
"CslType": {
"type": "long",
"IsNumeric": true,
"IsSummable": true
}
},
"RecommendedColumn": {
"Name": "time_millisec",
"CslType": {
"type": "datetime",
"IsNumeric": false,
"IsSummable": true
}
},
"ApplicableTransformationMapping": "DateTimeFromUnixMilliseconds"
}
]
}