plug-in infer_storage_schema_with_suggestions
Si applica a: ✅Microsoft Fabric✅Azure Esplora dati
Questo infer_storage_schema_with_suggestions
plug-in deduce lo schema dei dati esterni e restituisce un oggetto JSON. Per ogni colonna, l'oggetto fornisce un tipo dedotto, un tipo consigliato e la trasformazione di mapping consigliata. Il tipo e il mapping consigliati vengono forniti dalla logica dei suggerimenti che determina il tipo ottimale usando la logica seguente:
- Colonne Identity: se il tipo dedotto per una colonna è
long
e il nome della colonna termina conid
, il tipo suggerito èstring
perché fornisce l'indicizzazione ottimizzata per le colonne Identity in cui i filtri di uguaglianza sono comuni. - Colonne datetime Unix: se il tipo dedotto per una colonna è
long
e una delle trasformazioni di mapping unix-time a datetime produce un valore datetime valido, il tipo suggerito èdatetime
e il mapping suggeritoApplicableTransformationMapping
è quello che ha generato un valore datetime valido.
Il plug-in viene richiamato con l'operatore evaluate
. Per ottenere lo schema di tabella che usa lo schema dedotto per Creare e modificare Archiviazione di Azure tabelle esterne senza suggerimenti, usare il plug-in infer_storage_schema.
Autenticazione e autorizzazione
Nelle proprietà della richiesta si specificano gli stringa di connessione di archiviazione a cui 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, potrebbe essere necessario concedere all'entità 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 | Lettore |
Token (SAS) di accesso condiviso | Elenco e lettura | Questo metodo di autenticazione non è supportato in Gen1. |
Token di accesso di Microsoft Entra | ||
Chiave di accesso dell'account di archiviazione | Questo metodo di autenticazione non è supportato in Gen1. |
Sintassi
evaluate
infer_storage_schema_with_suggestions(
Opzioni )
Altre informazioni sulle convenzioni di sintassi.
Parametri
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
Opzioni | dynamic |
✔️ | Contenitore delle proprietà che specifica le proprietà della richiesta. |
Proprietà supportate della richiesta
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
StorageContainers | dynamic |
✔️ | Matrice di stringa di connessione di archiviazione che rappresentano l'URI del prefisso per gli artefatti di dati archiviati. |
DataFormat | string |
✔️ | Uno dei formati di dati supportati per l'inserimento |
FileExtension | string |
Se specificato, la funzione analizza solo i file che terminano con questa estensione di file. La specifica dell'estensione può 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. La specifica del prefisso può velocizzare il processo. | |
Modalità | string |
Strategia di inferenza dello schema. Valore : any , last , all . La funzione deduce lo schema dei dati dal primo file trovato, dall'ultimo file scritto o da tutti i file rispettivamente. Il valore predefinito è last . |
|
InferenceOptions | dynamic |
Altre opzioni di inferenza. Opzioni valide: UseFirstRowAsHeader per i formati di file delimitati. Ad esempio, 'InferenceOptions': {'UseFirstRowAsHeader': true} |
Valori restituiti
Il infer_storage_schema_with_suggestions
plug-in restituisce una singola tabella dei risultati contenente una singola riga/colonna contenente una stringa JSON.
Nota
- Le chiavi segrete dell'URI del contenitore di archiviazione devono avere le autorizzazioni per List oltre a Lettura.
- La strategia di inferenza dello schema 'all' è un'operazione molto "costosa", in quanto implica la lettura da tutti gli artefatti trovati e l'unione del relativo schema.
- Alcuni tipi restituiti potrebbero non essere quelli effettivi a causa di un'ipotesi errata del tipo (o, come risultato del processo di unione dello schema). Ecco perché è consigliabile esaminare attentamente il risultato prima di usarli.
Esempio
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)
Dati di input di esempio
{
"source": "DataExplorer",
"created_at": "2022-04-10 15:47:57",
"author_id": 739144091473215488,
"time_millisec":1547083647000
}
Output
{
"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"
}
]
}