Share via


Mapping di inserimento

I mapping di inserimento vengono usati durante l'inserimento per eseguire il mapping dei dati in ingresso alle colonne all'interno di tabelle.

Esplora dati supporta diversi tipi di mapping, orientati a righe (CSV, JSON, AVRO e W3CLOGFILE) e orientate alle colonne (Parquet e ORC).

È possibile creare i mapping di inserimento e fare riferimento al comando inserimento usando ingestionMappingReference i parametri. Anche se l'inserimento è possibile senza specificare un mapping. Per altre informazioni, vedere Mapping delle identità.

Ogni elemento nell'elenco di mapping viene costruito da tre campi:

Proprietà Obbligatoria Descrizione
Colonna ✔️ Nome della colonna di destinazione nella tabella.
Datatype Tipo di dati con cui creare la colonna mappata se non esiste già nella tabella.
Proprietà Contenitore di proprietà contenente proprietà specifiche per ogni mapping, come descritto in ogni pagina del tipo di mapping specifico.

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.

Tipi di mapping supportati

La tabella seguente definisce i tipi di mapping da usare durante l'inserimento o l'esecuzione di query su dati esterni di un formato specifico.

Formato dati Tipo di mapping
CSV CSV Mapping
TSV CSV Mapping
TSVe CSV Mapping
PSV CSV Mapping
SCSV CSV Mapping
SOHsv CSV Mapping
TXT CSV Mapping
RAW CSV Mapping
JSON JSON Mapping
AVRO AVRO Mapping
APACHEAVRO AVRO Mapping
Parquet Parquet Mapping
ORC ORC Mapping
W3CLOGFILE W3CLOGFILE Mapping

Mapping di identità

L'inserimento è possibile senza specificare ingestionMapping o ingestionMappingReference proprietà. I dati verranno mappati usando un mapping dei dati di identità derivato dallo schema della tabella. Lo schema della tabella rimarrà invariato. format la proprietà deve essere specificata. Vedere formati di inserimento.

Tipo di formato Formato Logica di mapping
Formati di dati tabulari con ordine definito di colonne, ad esempio formati delimitatori separati o a riga singola. CSV, TSV, TSVe, PSV, SCSV, Txt, SOHsv, Raw Tutte le colonne di tabella vengono mappate rispettivamente alle colonne di dati nell'ordine in cui vengono visualizzate nell'origine dati. Il tipo di dati della colonna viene tratto dallo schema della tabella.
Formati con colonne o record denominati con campi denominati. JSON, Parquet, Avro, ApacheAvro, Orc, W3CLOGFILE Tutte le colonne di tabella vengono mappate a colonne di dati o campi di record con lo stesso nome (distinzione tra maiuscole e minuscole). Il tipo di dati della colonna viene tratto dallo schema della tabella.

Avviso

Qualsiasi mancata corrispondenza tra lo schema della tabella e la struttura dei dati, ad esempio tipi di dati di colonna o di campo, colonne o nomi di campo o il relativo numero potrebbero comportare dati vuoti o non corretti inseriti.

Trasformazioni del mapping

Alcuni dei mapping di formato dati (Parquet, JSON e AVRO) supportano trasformazioni semplici e utili ingest-time. Se lo scenario richiede un'elaborazione più complessa in fase di inserimento, usare i criteri di aggiornamento, che consentono di definire l'elaborazione leggera usando l'espressione KQL.

Trasformazione a seconda del percorso Descrizione Condizioni
PropertyBagArrayToDictionary Trasforma la matrice JSON di proprietà, ad esempio , per dizionario e serializza la matrice JSON valida, ad esempio {events:[{"n1":"v1"},{"n2":"v2"}]}{"n1":"v1","n2":"v2"}. Disponibile per JSON, ParquetAVRO e ORC tipi di mapping.
SourceLocation Nome dell'artefatto di archiviazione che ha fornito i dati, digitare stringa (ad esempio, il campo "BaseUri" del BLOB). Disponibile per CSV, JSONParquet, , AVROORC e W3CLOGFILE tipi di mapping.
SourceLineNumber Offset rispetto a tale artefatto di archiviazione, digitare long (a partire da '1' e incremento per nuovo record). Disponibile in: JSON, Parquet, AVROORC e W3CLOGFILE tipi di mapping.
DateTimeFromUnixSeconds Converte il numero che rappresenta unix-time (secondi dal 1970-01-01) alla stringa datetime UTC. Disponibile per JSON, ParquetAVRO e ORC tipi di mapping.
DateTimeFromUnixMilliseconds Converte il numero che rappresenta unix-time (millisecondi dal 1970-01-01) alla stringa datetime UTC. Disponibile per JSON, ParquetAVRO e ORC tipi di mapping.
DateTimeFromUnixMicroseconds Converte il numero che rappresenta unix-time (microsecondi dal 1970-01-01) alla stringa datetime UTC. Disponibile per JSON, ParquetAVRO e ORC tipi di mapping.
DateTimeFromUnixNanoseconds Converte il numero che rappresenta unix-time (nanosecondi dal 1970-01-01) alla stringa datetime UTC. Disponibile per JSON, ParquetAVRO e ORC tipi di mapping.
DropMappedFields Esegue il mapping di un oggetto nel documento JSON a una colonna e rimuove tutti i campi annidati già a cui fa riferimento altri mapping di colonne. Disponibile per JSON, ParquetAVRO e ORC tipi di mapping.
ByteAsBase64 Considera i dati come matrice di byte e lo converte in una stringa con codifica base64. Disponibile per AVRO il tipo di mapping. Per ApacheAvro il formato, il tipo di schema del campo dati mappato deve essere bytes o fixed tipo Avro. Per Avro il formato, il campo deve essere una matrice contenente valori di byte dall'intervallo [0-255]. null viene inserito se i dati non rappresentano una matrice di byte valida.

Esempi di trasformazione mapping

DropMappedFields Trasformazione:

Dato il contenuto JSON seguente:

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

Il mapping dei dati seguente esegue il mapping dell'intero Props oggetto nella colonna dinamica, escludendo le colonne già mappate (Props.EventName è già mappato alla colonna PropsEventName, quindi è escluso).

[
    { "Column": "Time", "Properties": { "Path": "$.Time" } },
    { "Column": "EventName", "Properties": { "Path": "$.Props.EventName" } },
    { "Column": "Props", "Properties": { "Path": "$.Props", "Transform":"DropMappedFields" } },
]

I dati inseriti sono i seguenti:

Ora EventName Proprietà
2012-01-15T10:45 CustomEvent {"Revenue": 0.456}

BytesAsBase64 Trasformazione

Dato il contenuto del file AVRO seguente:

{
    "Time": "2012-01-15T10:45",
    "Props": {
        "id": [227,131,34,92,28,91,65,72,134,138,9,133,51,45,104,52]
    }
}

Il mapping dei dati seguente esegue il mapping della colonna ID due volte, con e senza la trasformazione.

[
    { "Column": "Id", "Properties": { "Path": "$.props.id" } },
    { "Column": "Base64EncodedId", "Properties": { "Path": "$.props.id", "Transform":"BytesAsBase64" } },
]

I dati inseriti sono i seguenti:

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