Datainmatningsmappningar

Inmatningsmappningar används under inmatning för att mappa inkommande data till kolumner i tabeller.

Data Explorer stöder olika typer av mappningar, både radorienterade (CSV, JSON, AVRO och W3CLOGFILE) och kolumnorienterade (Parquet och ORC).

Inmatningsmappningar kan skapas i förväg och kan refereras från inmatningskommandot med hjälp av ingestionMappingReference parametrar. Även om inmatning är möjligt utan att ange en mappning. Mer information finns i Identitetsmappning.

Varje element i mappningslistan skapas från tre fält:

Egenskap Krävs Beskrivning
Kolumn ✔️ Målkolumnnamn i tabellen.
Datatyp Datatyp som den mappade kolumnen ska skapas med om den inte redan finns i tabellen.
Egenskaper Egenskapsuppsättning som innehåller egenskaper som är specifika för varje mappning enligt beskrivningen på varje specifik mappningstypsida.

Viktigt

För köad inmatning:

  • Om tabellen som refereras i mappningen inte finns i databasen skapas den automatiskt, med tanke på att giltiga datatyper har angetts för alla kolumner.
  • Om en kolumn som refereras i mappningen inte finns i tabellen läggs den automatiskt till i tabellen som den sista kolumnen första gången data matas in för den kolumnen, givet att en giltig datatyp har angetts för kolumnen. Om du vill lägga till nya kolumner i en mappning använder du kommandot .alter ingestion mapping.
  • Data batchas med hjälp av inmatningsegenskaper. Ju mer distinkta egenskaper för inmatningsmappning som används, till exempel olika ConstValue-värden, desto mer fragmenterad blir inmatningen, vilket kan leda till prestandaförsämring.

Mappningstyper som stöds

I följande tabell definieras mappningstyper som ska användas vid inmatning eller frågekörning mot externa data i ett visst format.

Dataformat Mappningstyp
CSV CSV-mappning
TSV CSV-mappning
TSVe CSV-mappning
PSV CSV-mappning
SCSV CSV-mappning
SOHsv CSV-mappning
TXT CSV-mappning
RAW CSV-mappning
JSON JSON-mappning
AVRO AVRO-mappning
APACHEAVRO AVRO-mappning
Parquet Parquet-mappning
ORC ORC-mappning
W3CLOGFILE W3CLOGFILE mappning

Identitetsmappning

Inmatning är möjligt utan att ingestionMapping ange eller ingestionMappingReference egenskaper. Data mappas med hjälp av en identitetsdatamappning som härleds från tabellens schema. Tabellschemat förblir detsamma. format egenskapen ska anges. Se inmatningsformat.

Formattyp Format Mappningslogik
Tabelldataformat med definierad kolumnordning, till exempel avgränsaravgränsade format eller enradsformat. CSV, TSV, TSVe, PSV, SCSV, Txt, SOHsv, Raw Alla tabellkolumner mappas i respektive ordning till datakolumner i den ordning de visas i datakällan. Kolumndatatypen hämtas från tabellschemat.
Format med namngivna kolumner eller poster med namngivna fält. JSON, Parquet, Avro, ApacheAvro, Orc, W3CLOGFILE Alla tabellkolumner mappas till datakolumner eller postfält med samma namn (skiftlägeskänsliga). Kolumndatatypen hämtas från tabellschemat.

Varning

Eventuella matchningsfel mellan tabellschemat och datastrukturen, till exempel kolumn- eller fältdatatyper, kolumn- eller fältnamn eller deras nummer, kan resultera i tomma eller felaktiga data som matas in.

Mappa transformeringar

Vissa dataformatmappningar (Parquet, JSON och AVRO) stöder enkla och användbara inmatningstidstransformeringar. Om scenariot kräver mer komplex bearbetning vid inmatningstillfället använder du Uppdateringsprincip, vilket gör det möjligt att definiera enkel bearbetning med KQL-uttryck.

Sökvägsberoende transformering Description Villkor
PropertyBagArrayToDictionary Transformerar JSON-matrisen med egenskaper, till exempel {events:[{"n1":"v1"},{"n2":"v2"}]}, för att ordlista och serialiserar den till ett giltigt JSON-dokument, till exempel {"n1":"v1","n2":"v2"}. Tillgänglig för JSONmappningstyperna , ParquetAVRO och ORC .
SourceLocation Namnet på lagringsartefakten som tillhandahöll data, skriv sträng (till exempel blobens "BaseUri"-fält). Tillgänglig för CSVmappningstyperna , ParquetJSON, AVRO, ORC och W3CLOGFILE .
SourceLineNumber Förskjutning i förhållande till lagringsartefakten skriver du long (börjar med "1" och ökar per ny post). Finns i: JSON, Parquet, AVROORC och W3CLOGFILE mappningstyper.
DateTimeFromUnixSeconds Konverterar tal som representerar unix-time (sekunder sedan 1970-01-01) till UTC datetime-sträng. Tillgänglig för JSONmappningstyperna , ParquetAVRO och ORC .
DateTimeFromUnixMilliseconds Konverterar tal som representerar unix-time (millisekunder sedan 1970-01-01) till UTC datetime-sträng. Tillgänglig för JSONmappningstyperna , ParquetAVRO och ORC .
DateTimeFromUnixMicroseconds Konverterar tal som representerar unix-time (mikrosekunder sedan 1970-01-01) till UTC datetime-sträng. Tillgänglig för JSONmappningstyperna , ParquetAVRO och ORC .
DateTimeFromUnixNanoseconds Konverterar tal som representerar unix-time (nanosekunder sedan 1970-01-01) till UTC datetime-sträng. Tillgänglig för JSONmappningstyperna , ParquetAVRO och ORC .
DropMappedFields Mappar ett objekt i JSON-dokumentet till en kolumn och tar bort alla kapslade fält som redan refereras av andra kolumnmappningar. Tillgänglig för JSONmappningstyperna , ParquetAVRO och ORC .
BytesAsBase64 Behandlar data som bytematris och konverterar dem till en base64-kodad sträng. Tillgänglig för AVRO mappningstyp. För ApacheAvro format ska schematypen för det mappade datafältet vara bytes eller fixed av typen Avro. För Avro format ska fältet vara en matris som innehåller bytevärden från intervallet [0–255]. null matas in om data inte representerar en giltig bytematris.

Exempel på mappning av transformering

DropMappedFields Omvandling:

Givet följande JSON-innehåll:

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

Följande datamappning mappar hela Props objektet till en dynamisk kolumn Props och exkluderar redan mappade kolumner (Props.EventName är redan mappat till kolumnen EventName, så det utesluts).

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

Inmatade data ser ut så här:

Tid EventName Rekvisita
2012-01-15T10:45 CustomEvent {"Revenue": 0.456}

BytesAsBase64 Omvandling

Baserat på följande AVRO-filinnehåll:

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

Följande datamappning mappar ID-kolumnen två gånger, med och utan transformeringen.

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

Inmatade data ser ut så här:

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