Partager via


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 précréés et peuvent être référencés à partir de la commande d’ingestion à l’aide ingestionMappingReference de paramètres. Bien que l’ingestion soit possible sans spécifier de mappage. Pour plus d’informations, consultez mappage d’identité.

Chaque élément de la liste de mappages est construit à partir de trois champs :

Propriété Obligatoire Description
Colonne ✔️ Nom de 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 Conteneur de propriétés 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 mise 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 les 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 ajoutée automatiquement à la table en tant que dernière colonne lors de la première réception des 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 .alter ingestion.
  • Les données sont traitées par lots à l’aide de propriétés d’ingestion. Les propriétés de mappage d’ingestion plus distinctes utilisées, telles que différentes valeurs ConstValue, sont plus fragmentées l’ingestion devient, 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 de W3CLOGFILE

Mappage d’identité

L’ingestion est possible sans spécifier ingestionMapping ou ingestionMappingReference propriétés. 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. Voir les formats d’ingestion.

Type de format Format Logique de mappage
Formats de données tabulaires avec un ordre défini de colonnes, tels que des formats séparés par des délimiteurs ou monolignes. 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 aux colonnes de données ou aux 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 colonne ou de champ, 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, ce qui permet de définir un traitement léger à l’aide de l’expression KQL.

Transformation dépendante du chemin d’accès Description Conditions
PropertyBagArrayToDictionary Transforme le tableau JSON de propriétés, par {events:[{"n1":"v1"},{"n2":"v2"}]}exemple, en dictionnaire et le sérialise en document JSON valide, tel que {"n1":"v1","n2":"v2"}. Disponible pour JSONles types , ParquetAVRO et ORC de mappage.
SourceLocation Nom de l’artefact de stockage qui a fourni les données, chaîne de type (par exemple, le champ « BaseUri » de l’objet blob). Disponible pour CSVles types de mappage , , AVROORCJSONParquetet W3CLOGFILE pour les types de mappage.
SourceLineNumber Décalage relatif à cet artefact de stockage, tapez long (à partir de « 1 » et incrémentation par nouvel enregistrement). Disponible pour CSVles types de mappage , , AVROORCJSONParquetet W3CLOGFILE pour les types de mappage.
DateTimeFromUnixSeconds Convertit le nombre représentant unix-time (secondes depuis 1970-01-01) en chaîne datetime UTC. Disponible pour JSONles types , ParquetAVRO et ORC de mappage.
DateTimeFromUnixMilliseconds Convertit le nombre représentant unix-time (millisecondes depuis 1970-01-01) en chaîne datetime UTC. Disponible pour JSONles types , ParquetAVRO et ORC de mappage.
DateTimeFromUnixMicroseconds Convertit le nombre représentant unix-time (microsecondes depuis 1970-01-01) en chaîne datetime UTC. Disponible pour JSONles types , ParquetAVRO et ORC de mappage.
DateTimeFromUnixNanoseconds Convertit le nombre représentant unix-time (nanosecondes depuis 1970-01-01) en chaîne datetime UTC. Disponible pour JSONles types , ParquetAVRO et ORC de mappage.
DropMappedFields Mappe un objet dans le 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 JSONles types , ParquetAVRO et ORC de mappage.
OctetsAsBase64 Traite les données en tant que tableau d’octets et les convertit en chaîne encodées en base64. Disponible pour AVRO le type de mappage. Pour ApacheAvro le format, le type de schéma du champ de données mappé doit être bytes ou fixed un type 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:

Étant donné le contenu JSON suivant :

{
    "Time": "2012-01-15T10:45",
    "Props": {
        "EventName": "CustomEvent",
        "Revenue": 0.456
    }
}

Le mappage de données suivant mappe l’ensemble Props de l’objet 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ésente comme suit :

Temps EventName Propriétés
2012-01-15T10:45 CustomEvent {"Revenue": 0.456}

BytesAsBase64 transformation

Étant donné le 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ésente comme suit :

Id Base64EncodedId
[227,131,34,92,28,91,65,72,134,138,9,133,51,45,104,52] 44MiXBxbQUiGigmFMy1oNA==