infer_storage_schema-plugin-program
Det här plugin-programmet härleder schemat för externa data och returnerar dem som CSL-schemasträng. Strängen kan användas när du skapar externa tabeller. Plugin-programmet anropas med operatorn evaluate
.
Autentisering och auktorisering
I egenskaperna för begäran anger du lagringsanslutningssträngar för åtkomst. Varje lagring anslutningssträng anger vilken auktoriseringsmetod som ska användas för åtkomst till lagringen. Beroende på auktoriseringsmetoden kan huvudkontot behöva beviljas behörigheter för den externa lagringen för att utföra schemainferensen.
I följande tabell visas de autentiseringsmetoder som stöds och eventuella behörigheter som krävs efter lagringstyp.
Autentiseringsmetod | Azure Blob Storage/Data Lake Storage Gen2 | Data Lake Storage Gen1 |
---|---|---|
Personifiering | Storage Blob Data-läsare | Läsare |
SAS-token (Shared Access) | Lista + läs | Den här autentiseringsmetoden stöds inte i Gen1. |
Microsoft Entra åtkomsttoken | ||
Åtkomstnyckel för lagringskonto | Den här autentiseringsmetoden stöds inte i Gen1. |
Syntax
evaluate
infer_storage_schema(
Alternativ)
Läs mer om syntaxkonventioner.
Parametrar
Namn | Typ | Obligatorisk | Beskrivning |
---|---|---|---|
Alternativ | dynamic |
✔️ | En egenskapsuppsättning som anger egenskaperna för begäran. |
Egenskaper som stöds för begäran
Namn | Typ | Obligatorisk | Beskrivning |
---|---|---|---|
StorageContainers | dynamic |
✔️ | En matris med anslutningssträngar för lagring som representerar prefix-URI för lagrade dataartefakter. |
DataFormat | string |
✔️ | Ett av de dataformat som stöds. |
FileExtension | string |
Om det anges genomsöker funktionen endast filer som slutar med det här filtillägget. Att ange tillägget kan påskynda processen eller eliminera dataläsningsproblem. | |
FileNamePrefix | string |
Om detta anges genomsöker funktionen endast filer som börjar med det här prefixet. Om du anger prefixet kan processen påskyndas. | |
Läge | string |
Strategin för schemainferens. Ett värde på: any , last , all . Funktionen härleder dataschemat från den första hittade filen, från den senast skrivna filen eller från alla filer. Standardvärdet är last . |
Returer
Plugin-programmet infer_storage_schema
returnerar en enda resultattabell som innehåller en enda rad/kolumn med CSL-schemasträng.
Anteckning
- Lagringscontainerns URI-hemliga nycklar måste ha behörighet för Lista utöver Läs.
- Schemainferensstrategin "all" är en mycket "dyr" åtgärd, eftersom det innebär att läsa från alla artefakter som hittats och slå samman deras schema.
- Vissa returnerade typer kanske inte är de faktiska som ett resultat av fel typ gissning (eller som ett resultat av schemasammanslagningsprocessen). Därför bör du granska resultatet noggrant innan du skapar en extern tabell.
Exempel
let options = dynamic({
'StorageContainers': [
h@'https://storageaccount.blob.core.windows.net/MobileEvents;secretKey'
],
'FileExtension': '.parquet',
'FileNamePrefix': 'part-',
'DataFormat': 'parquet'
});
evaluate infer_storage_schema(options)
Resultat
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 |
Använd det returnerade schemat i den externa tabelldefinitionen:
.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.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för