Plug-in infer_storage_schema
Questo plug-in inferisce lo schema dei dati esterni e lo restituisce come stringa dello schema CSL. La stringa può essere usata durante la creazione di tabelle esterne. Il plug-in viene richiamato con l'operatore evaluate
.
Autenticazione e autorizzazione
Nelle proprietà della richiesta specificare le stringhe di connessione di archiviazione per accedere. Ogni stringa di connessione di archiviazione specifica il metodo di autorizzazione da usare per l'accesso all'archiviazione. A seconda del metodo di autorizzazione, l'entità potrebbe dover essere concessa le autorizzazioni per l'archiviazione esterna per eseguire l'inferenza dello schema.
Nella tabella seguente sono elencati i metodi di autenticazione supportati e le autorizzazioni necessarie per tipo di archiviazione.
Metodo di autenticazione | Archiviazione BLOB di Azure/Data Lake Storage Gen2 | Data Lake Storage Gen1 |
---|---|---|
Rappresentazione | Lettore dei dati del BLOB di archiviazione | Reader |
Token di accesso condiviso (SAS) | Elenco + Lettura | Questo metodo di autenticazione non è supportato in Gen1. |
token di accesso Microsoft Entra | ||
Chiave di accesso dell'account di archiviazione | Questo metodo di autenticazione non è supportato in Gen1. |
Sintassi
evaluate
infer_storage_schema(
Opzioni)
Altre informazioni sulle convenzioni di sintassi.
Parametri
Nome | Tipo | Obbligatoria | Descrizione |
---|---|---|---|
Opzioni | dynamic |
✔️ | Un contenitore di proprietà che specifica le proprietà della richiesta. |
Proprietà supportate della richiesta
Nome | Tipo | Obbligatoria | Descrizione |
---|---|---|---|
StorageContainers | dynamic |
✔️ | Matrice di stringhe di connessione di archiviazione che rappresentano l'URI di prefisso per gli artefatti dati archiviati. |
DataFormat | string |
✔️ | Uno dei formati di dati supportati. |
FileExtension | string |
Se specificato, la funzione analizza solo i file che terminano con questa estensione di file. Se si specifica l'estensione, è possibile velocizzare il processo o eliminare i problemi di lettura dei dati. | |
FileNamePrefix | string |
Se specificato, la funzione analizza solo i file a partire da questo prefisso. Se si specifica il prefisso, è possibile velocizzare il processo. | |
Modalità | string |
Strategia di inferenza dello schema. Valore di: any , last , all . La funzione inferisce rispettivamente lo schema dei dati dal primo file trovato, dall'ultimo file scritto o da tutti i file. Il valore predefinito è last . |
Restituisce
Il infer_storage_schema
plug-in restituisce una singola tabella dei risultati contenente una singola riga/colonna che contiene una stringa di schema CSL.
Nota
- Le chiavi segrete del contenitore di archiviazione devono avere le autorizzazioni per List oltre a Lettura.
- La strategia di inferenza dello schema 'all' è un'operazione molto "costosa", perché implica la lettura di tutti gli artefatti trovati e l'unione dello schema.
- Alcuni tipi restituiti potrebbero non essere quelli effettivi a causa di un'indovina di tipo errato (o, come risultato del processo di unione dello schema). Questo è il motivo per cui è consigliabile esaminare attentamente il risultato prima di creare una tabella esterna.
Esempio
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 |
Usare lo schema restituito nella definizione di tabella esterna:
.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'
)
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per