Dela via


AVRO-mappning

Gäller för: ✅Microsoft FabricAzure Data Explorer

Använd AVRO-mappning för att mappa inkommande data till kolumner i tabeller när källfilen för inmatning är i AVRO-format.

Varje element i mappningslistan definierar mappningen för en specifik kolumn. Dessa element har tre egenskaper: column, datatypeoch properties. Läs mer i översikten över datamappningar.

Varje AVRO-mappningselement måste innehålla någon av följande valfria egenskaper:

Egenskap Typ Beskrivning
Fält string Namnet på fältet i AVRO-posten.
Stig string Om värdet börjar med $behandlas det som sökvägen till fältet i AVRO-dokumentet. Den här sökvägen anger den del av AVRO-dokumentet som blir innehållet i kolumnen i tabellen. Sökvägen som anger hela AVRO-posten är $. Om värdet inte börjar med $behandlas det som ett konstant värde. Sökvägar som innehåller specialtecken bör undantagas som ['Egenskapsnamn']. Mer information finns i JSONPath-syntax.
ConstValue string Det konstanta värde som ska användas för en kolumn i stället för något värde i AVRO-filen.
Transformera string Transformering som ska tillämpas på innehållet med mappningstransformeringar.

Not

Fält och sökväg är ömsesidigt uteslutande.

Följande alternativ är likvärdiga:

[
  {"Column": "event_name", "Properties": {"Path": "$.EventName"}}
]
[
  {"Column": "event_name", "Properties": {"Field": "EventName"}}
]

Viktig

För köad inmatning:

  • Om tabellen som refereras till 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 till 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.

Exempel

JSON-serialisering

Följande exempelmappning serialiseras som en JSON-sträng när den tillhandahålls som en del av .ingest-hanteringskommandot.

[
  {"Column": "event_timestamp", "Properties": {"Field": "Timestamp"}},
  {"Column": "event_name",      "Properties": {"Field": "Name"}},
  {"Column": "event_type",      "Properties": {"Field": "Type"}},
  {"Column": "event_time",      "Properties": {"Field": "Timestamp", "Transform": "DateTimeFromUnixMilliseconds"}},
  {"Column": "ingestion_time",  "Properties": {"ConstValue": "2021-01-01T10:32:00"}},
  {"Column": "full_record",     "Properties": {"Path": "$"}}
]

Här ingår den serialiserade JSON-mappningen i kontexten för .ingest-hanteringskommandot.

.ingest into Table123 (@"source1", @"source2")
  with
  (
      format = "AVRO",
      ingestionMapping =
      ```
      [
        {"Column": "column_a", "Properties": {"Field": "Field1"}},
        {"Column": "column_b", "Properties": {"Field": "$.[\'Field name with space\']"}}
      ]
      ```
  )

Förskapad mappning

När mappningen förskapadrefererar du till mappningen efter namn i kommandot .ingest management.

.ingest into Table123 (@"source1", @"source2")
    with
    (
        format="AVRO",
        ingestionMappingReference = "Mapping_Name"
    )

Identitetsmappning

Använd AVRO-mappning under inmatning utan att definiera ett mappningsschema (se identitetsmappning).

.ingest into Table123 (@"source1", @"source2")
    with
    (
        format="AVRO"
    )
  • Använd verktyget avrotize k2a för att skapa ett Avro-schema.