Partager via


Mappage CSV

Utilisez le mappage CSV pour mapper les données entrantes à des colonnes à l’intérieur de tables lorsque votre fichier source d’ingestion est l’un des formats tabulaires séparés par un délimiteur : CSV, TSV, PSV, SCSV, SOHsv, TXT et RAW. Pour plus d’informations, consultez Formats de données pris en charge.

Chaque élément de la liste de mappage définit le mappage pour une colonne spécifique. Ces éléments sont construits à partir de trois propriétés : column, datatypeet properties. Pour plus d’informations, consultez vue d’ensemble des mappages de données.

Chaque élément de mappage CSV doit contenir l’une des propriétés facultatives suivantes :

Propriété Type Description
Ordinal int Numéro d’ordre de colonne en CSV.
ConstValue string Valeur constante à utiliser pour une colonne au lieu d’une valeur à l’intérieur du fichier CSV.
Transformation string Transformation qui doit être appliquée au contenu avec des transformations de mappage. La seule transformation prise en charge par est SourceLocation.

Notes

  • Quand ConstValue ou SourceLocation la transformation sont utilisées, Ordinal doit être non définie.
  • Pour les formats TXT et RAW, seul Ordinal 0 peut être mappé, car le texte est traité comme une seule colonne de lignes.

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.

Exemples

[
  {"Column": "event_time", "Properties": {"Ordinal": "0"}},
  {"Column": "event_name", "Properties": {"Ordinal": "1"}},
  {"Column": "event_type", "Properties": {"Ordinal": "2"}},
  {"Column": "ingestion_time", "Properties": {"ConstValue": "2023-01-01T10:32:00"}}
  {"Column": "source_location", "Properties": {"Transform": "SourceLocation"}}
]

Le mappage ci-dessus est sérialisé en tant que chaîne JSON lorsqu’il est fourni dans le cadre de la .ingest commande de gestion.

.ingest into Table123 (@"source1", @"source2")
    with
    (
        format="csv",
        ingestionMapping =
        ```
        [
            {"Column": "event_time", "Properties": {"Ordinal": "0"}},
            {"Column": "event_name", "Properties": {"Ordinal": "1"}},
            {"Column": "event_type", "Properties": {"Ordinal": "2"}},
            {"Column": "ingestion_time", "Properties": {"ConstValue": "2023-01-01T10:32:00"}},
            {"Column": "source_location", "Properties": {"Transform": "SourceLocation"}}
        ]
        ```
    )

Mappage précréé

Lorsque le mappage est précréé, référencez le mappage par son nom dans la .ingest commande de gestion.

.ingest into Table123 (@"source1", @"source2")
    with
    (
        format="csv",
        ingestionMappingReference = "MappingName"
    )

Mappage d’identité

Utilisez le mappage CSV pendant l’ingestion sans définir de schéma de mappage (voir mappage d’identité).

.ingest into Table123 (@"source1", @"source2")
    with
    (
        format="csv"
    )