AVRO-mappning
Gäller för: ✅Microsoft Fabric✅Azure 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
, datatype
och 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"
)
Relaterat innehåll
- Använd verktyget avrotize k2a för att skapa ett Avro-schema.