Condividi tramite


Mapping CSV

Usare il mapping CSV per eseguire il mapping dei dati in ingresso alle colonne all'interno di tabelle quando il file di origine di inserimento è uno dei formati tabulari delimitatori seguenti: CSV, TSV, PSV, SCSV, SOHsv, TXT e RAW. Per altre informazioni, vedere Formati di dati supportati.

Ogni elemento nell'elenco di mapping definisce il mapping per una colonna specifica. Questi elementi vengono costruiti da tre proprietà: column, datatypee properties. Altre informazioni sono disponibili nella panoramica dei mapping dei dati.

Ogni elemento di mapping CSV deve contenere una delle proprietà facoltative seguenti:

Proprietà Type Descrizione
Ordinale int Numero di ordine di colonna in CSV.
ConstValue string Valore costante da utilizzare per una colonna anziché un valore all'interno del file CSV.
Trasformazione string Trasformazione che deve essere applicata al contenuto con trasformazioni di mapping. L'unica trasformazione supportata da è SourceLocation.

Nota

  • Quando ConstValue viene usata o SourceLocation la trasformazione, Ordinal deve essere annullata.
  • Per i formati TXT e RAW, è possibile eseguire il mapping solo Ordinal 0, poiché il testo viene considerato come una singola colonna di righe.

Importante

Per l'inserimento in coda:

  • Se la tabella a cui si fa riferimento nel mapping non esiste nel database, viene creata automaticamente, dato che per tutte le colonne vengono specificati tipi di dati validi.
  • Se una colonna a cui si fa riferimento nel mapping non esiste nella tabella, viene aggiunta automaticamente alla tabella come ultima colonna alla prima inserimento dei dati per tale colonna, dato che viene specificato un tipo di dati valido per la colonna. Per aggiungere nuove colonne a un mapping, usare il comando di mapping di inserimento .alter.
  • I dati vengono in batch usando le proprietà di inserimento. Le proprietà di mapping di inserimento più distinte usate, ad esempio valori ConstValue diversi, diventa più frammentata l'inserimento, che può causare una riduzione delle prestazioni.

Esempio

[
  {"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"}}
]

Il mapping precedente viene serializzato come stringa JSON quando viene fornito come parte del .ingest comando di gestione.

.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"}}
        ]
        ```
    )

Mapping pre-creato

Dopo la creazione preliminare del mapping, fare riferimento al mapping in base al nome nel .ingest comando di gestione.

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

Mapping di identità

Usare il mapping CSV durante l'inserimento senza definire uno schema di mapping (vedere Mapping delle identità).

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