Mappages d’ingestion
Les mappages d’ingestion sont utilisés pendant l’ingestion pour mapper les données entrantes aux colonnes à l’intérieur des tables.
Data Explorer prend en charge différents types de mappages, orientés lignes (CSV, JSON, AVRO et W3CLOGFILE) et orientés colonnes (Parquet et ORC).
Les mappages d’ingestion peuvent être créés au préalable et peuvent être référencés à partir de la commande ingestion à l’aide de ingestionMappingReference
paramètres. Bien que l’ingestion soit possible sans spécifier de mappage. Pour plus d’informations, consultez Mappage d’identités.
Chaque élément de la liste de mappage est construit à partir de trois champs :
Propriété | Obligatoire | Description |
---|---|---|
Colonne | ✔️ | Nom de la colonne cible dans la table. |
Datatype | Type de données avec lequel créer la colonne mappée s’il n’existe pas déjà dans la table. | |
Propriétés | Property-bag contenant des propriétés spécifiques pour chaque mappage, comme décrit dans chaque page de type de mappage spécifique. |
Important
Pour l’ingestion en file d’attente :
- Si la table référencée dans le mappage n’existe pas dans la base de données, elle est créée automatiquement, étant donné que des types de données valides sont spécifiés pour toutes les colonnes.
- Si une colonne référencée dans le mappage n’existe pas dans la table, elle est automatiquement ajoutée à la table en tant que dernière colonne lors de la première ingestion de données pour cette colonne, étant donné qu’un type de données valide est spécifié pour la colonne. Pour ajouter de nouvelles colonnes à un mappage, utilisez la commande de mappage d’ingestion .alter.
- Les données sont traitées par lots à l’aide des propriétés d’ingestion. Plus des propriétés de mappage d’ingestion distinctes sont utilisées, telles que des valeurs ConstValue différentes, plus l’ingestion devient fragmentée, ce qui peut entraîner une dégradation des performances.
Types de mappage pris en charge
Le tableau suivant définit les types de mappage à utiliser lors de l’ingestion ou de l’interrogation de données externes d’un format spécifique.
Format de données | Type de mappage |
---|---|
CSV | Mappage CSV |
TSV | Mappage CSV |
TSVe | Mappage CSV |
PSV | Mappage CSV |
SCSV | Mappage CSV |
SOHsv | Mappage CSV |
TXT | Mappage CSV |
RAW | Mappage CSV |
JSON | Mappage JSON |
AVRO | Mappage AVRO |
APACHEAVRO | Mappage AVRO |
Parquet | Mappage parquet |
ORC | Mappage ORC |
W3CLOGFILE | mappage W3CLOGFILE |
Mappage d’identité
L’ingestion est possible sans spécifier de ingestionMapping
propriétés ou ingestionMappingReference
. Les données seront mappées à l’aide d’un mappage de données d’identité dérivé du schéma de la table. Le schéma de table reste le même. format
la propriété doit être spécifiée. Consultez formats d’ingestion.
Type de format | Format | Logique de mappage |
---|---|---|
Formats de données tabulaires avec un ordre défini de colonnes, tels que les formats séparés par un délimiteur ou à une ligne. | CSV, TSV, TSVe, PSV, SCSV, Txt, SOHsv, Raw | Toutes les colonnes de table sont mappées dans leur ordre respectif aux colonnes de données afin qu’elles apparaissent dans la source de données. Le type de données de colonne est extrait du schéma de table. |
Met en forme des colonnes nommées ou des enregistrements avec des champs nommés. | JSON, Parquet, Avro, ApacheAvro, Orc, W3CLOGFILE | Toutes les colonnes de table sont mappées à des colonnes de données ou à des champs d’enregistrement portant le même nom (respectant la casse). Le type de données de colonne est extrait du schéma de table. |
Avertissement
Toute incompatibilité entre le schéma de table et la structure des données, telles que les types de données de colonne ou de champ, les noms de colonnes ou de champs ou leur nombre, peut entraîner l’ingestion de données vides ou incorrectes.
Mappage des transformations
Certains mappages de format de données (Parquet, JSON et AVRO) prennent en charge des transformations simples et utiles au moment de l’ingestion. Lorsque le scénario nécessite un traitement plus complexe au moment de l’ingestion, utilisez la stratégie de mise à jour, qui permet de définir un traitement léger à l’aide de l’expression KQL.
Transformation dépendante du chemin | Description | Conditions |
---|---|---|
PropertyBagArrayToDictionary | Transforme le tableau JSON de propriétés, telles que {events:[{"n1":"v1"},{"n2":"v2"}]} , en dictionnaire et le sérialise en document JSON valide, tel que {"n1":"v1","n2":"v2"} . |
Disponible pour JSON les types de mappage , Parquet AVRO et ORC . |
SourceLocation | Nom de l’artefact de stockage qui a fourni les données, type string (par exemple, le champ « BaseUri » de l’objet blob). | Disponible pour CSV les types de mappage , JSON Parquet , , AVRO ORC etW3CLOGFILE . |
SourceLineNumber | Décalage par rapport à cet artefact de stockage, type long (à partir de « 1 » et incrémentation par nouvel enregistrement). | Disponible dans les types de JSON mappage , Parquet , AVRO ORC et W3CLOGFILE . |
DateTimeFromUnixSeconds | Convertit le nombre représentant l’heure unix (secondes depuis 1970-01-01) en chaîne datetime UTC. | Disponible pour JSON les types de mappage , Parquet AVRO et ORC . |
DateTimeFromUnixMilliseconds | Convertit le nombre représentant l’heure unix (millisecondes depuis 1970-01-1970) en chaîne datetime UTC. | Disponible pour JSON les types de mappage , Parquet AVRO et ORC . |
DateTimeFromUnixMicroseconds | Convertit le nombre représentant l’heure unix (microsecondes depuis 1970-01-01) en chaîne datetime UTC. | Disponible pour JSON les types de mappage , Parquet AVRO et ORC . |
DateTimeFromUnixNanoseconds | Convertit le nombre représentant l’heure unix (nanosecondes depuis 1970-01-01) en chaîne datetime UTC. | Disponible pour JSON les types de mappage , Parquet AVRO et ORC . |
DropMappedFields | Mappe un objet du document JSON à une colonne et supprime tous les champs imbriqués déjà référencés par d’autres mappages de colonnes. | Disponible pour JSON les types de mappage , Parquet AVRO et ORC . |
BytesAsBase64 | Traite les données comme un tableau d’octets et les convertit en chaîne codée en base64. | Disponible pour le AVRO type de mappage. Pour ApacheAvro le format, le type de schéma du champ de données mappé doit être bytes ou fixed avro. Pour Avro le format, le champ doit être un tableau contenant des valeurs d’octets de la plage [0-255]. null est ingéré si les données ne représentent pas un tableau d’octets valide. |
Exemples de transformation de mappage
DropMappedFields
Transformation:
Compte tenu du contenu JSON suivant :
{
"Time": "2012-01-15T10:45",
"Props": {
"EventName": "CustomEvent",
"Revenue": 0.456
}
}
Le mappage de données suivant mappe l’objet entier Props
en colonne Props
dynamique tout en excluant les colonnes déjà mappées (Props.EventName
est déjà mappé dans la colonne EventName
, il est donc exclu).
[
{ "Column": "Time", "Properties": { "Path": "$.Time" } },
{ "Column": "EventName", "Properties": { "Path": "$.Props.EventName" } },
{ "Column": "Props", "Properties": { "Path": "$.Props", "Transform":"DropMappedFields" } },
]
Les données ingérées se présentent comme suit :
Temps | EventName | Propriétés |
---|---|---|
2012-01-15T10:45 |
CustomEvent |
{"Revenue": 0.456} |
BytesAsBase64
Transformation
Compte tenu du contenu du fichier AVRO suivant :
{
"Time": "2012-01-15T10:45",
"Props": {
"id": [227,131,34,92,28,91,65,72,134,138,9,133,51,45,104,52]
}
}
Le mappage de données suivant mappe la colonne id deux fois, avec et sans la transformation.
[
{ "Column": "Id", "Properties": { "Path": "$.props.id" } },
{ "Column": "Base64EncodedId", "Properties": { "Path": "$.props.id", "Transform":"BytesAsBase64" } },
]
Les données ingérées se présentent comme suit :
Id | Base64EncodedId |
---|---|
[227,131,34,92,28,91,65,72,134,138,9,133,51,45,104,52] |
44MiXBxbQUiGigmFMy1oNA== |
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour