plug-in infer_storage_schema_with_suggestions
S’applique à : ✅Microsoft Fabric✅Azure Data Explorer
Ce infer_storage_schema_with_suggestions
plug-in déduit le schéma des données externes et retourne un objet JSON. Pour chaque colonne, l’objet fournit un type déduit, un type recommandé et la transformation de mappage recommandée. Le type et le mappage recommandés sont fournis par la logique de suggestion qui détermine le type optimal à l’aide de la logique suivante :
- Colonnes d’identité : si le type déduit d’une colonne est
long
et que le nom de colonne se termine parid
, le type suggéré eststring
car il fournit une indexation optimisée pour les colonnes d’identité où les filtres d’égalité sont courants. - Colonnes datetime Unix : si le type déduit d’une colonne est
long
et que l’une des transformations de mappage unix-time à datetime produit une valeur datetime valide, le type suggéré estdatetime
et le mappage suggéréApplicableTransformationMapping
est celui qui a produit une valeur datetime valide.
Le plug-in est appelé avec l’opérateur evaluate
. Pour obtenir le schéma de table qui utilise le schéma déduit pour Créer et modifier Stockage Azure tables externes sans suggestions, utilisez le plug-in infer_storage_schema.
Authentification et autorisation
Dans les propriétés de la requête, vous spécifiez des chaîne de connexion de stockage à accéder. Chaque chaîne de connexion de stockage spécifie la méthode d’autorisation à utiliser pour accéder au stockage. Selon la méthode d’autorisation, le principal peut avoir besoin d’autorisations sur le stockage externe pour effectuer l’inférence de schéma.
Le tableau suivant répertorie les méthodes d’authentification prises en charge et toutes les autorisations requises par type de stockage.
Méthode d'authentification | Stockage Blob Azure / Data Lake Storage Gen2 | Data Lake Storage Gen 1 |
---|---|---|
Emprunt d'identité | Lecteur des données blob du stockage | Lecteur |
Jeton d’accès partagé (SAS) | Liste + Lecture | Cette méthode d’authentification n’est pas prise en charge dans Gen1. |
Jeton d’accès Microsoft Entra | ||
Clé d’accès au compte de stockage | Cette méthode d’authentification n’est pas prise en charge dans Gen1. |
Syntaxe
evaluate
infer_storage_schema_with_suggestions(
Options )
En savoir plus sur les conventions de syntaxe.
Paramètres
Nom | Type | Requise | Description |
---|---|---|---|
Options | dynamic |
✔️ | Conteneur de propriétés spécifiant les propriétés de la requête. |
Propriétés prises en charge de la requête
Nom | Type | Requise | Description |
---|---|---|---|
StorageContainers | dynamic |
✔️ | Tableau de chaîne de connexion de stockage qui représentent l’URI de préfixe pour les artefacts de données stockés. |
DataFormat | string |
✔️ | Un des formats de données pris en charge pour l’ingestion |
FileExtension | string |
Si elle est spécifiée, la fonction analyse uniquement les fichiers se terminant par cette extension de fichier. La spécification de l’extension peut accélérer le processus ou éliminer les problèmes de lecture des données. | |
FileNamePrefix | string |
Si elle est spécifiée, la fonction analyse uniquement les fichiers à partir de ce préfixe. La spécification du préfixe peut accélérer le processus. | |
Mode | string |
Stratégie d’inférence de schéma. Valeur : any , last , all . La fonction déduit le schéma de données du premier fichier trouvé, du dernier fichier écrit ou de tous les fichiers respectivement. La valeur par défaut est last . |
|
InferenceOptions | dynamic |
Autres options d’inférence. Options valides : UseFirstRowAsHeader pour les formats de fichiers délimités. Par exemple, 'InferenceOptions': {'UseFirstRowAsHeader': true} . |
Retours
Le infer_storage_schema_with_suggestions
plug-in retourne une table de résultats unique contenant une seule ligne/colonne contenant une chaîne JSON.
Remarque
- Les clés secrètes d’URI du conteneur de stockage doivent disposer des autorisations nécessaires à la liste en plus de la lecture.
- La stratégie d’inférence de schéma « all » est une opération très « coûteuse », car elle implique la lecture de tous les artefacts trouvés et la fusion de leur schéma.
- Certains types retournés peuvent ne pas être les types réels en raison d’une estimation de type incorrecte (ou, à la suite d’un processus de fusion de schéma). C’est pourquoi vous devez examiner attentivement le résultat avant de les utiliser.
Exemple
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)
Exemples de données d’entrée
{
"source": "DataExplorer",
"created_at": "2022-04-10 15:47:57",
"author_id": 739144091473215488,
"time_millisec":1547083647000
}
Sortie
{
"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"
}
]
}