JSON-mappning
Använd JSON-mappning för att mappa inkommande data till kolumner i tabeller när källfilen för inmatning är i JSON-format.
Varje element i mappningslistan definierar mappningen för en specifik kolumn. Dessa element konstrueras från tre egenskaper: column
, datatype
och properties
. Läs mer i översikten över datamappningar.
Varje JSON-mappningselement måste innehålla någon av följande valfria egenskaper:
Egenskap | Typ | Description |
---|---|---|
Sökväg | string |
Om värdet börjar med $ tolkas det som JSON-sökvägen till fältet i JSON-dokumentet som blir innehållet i kolumnen i tabellen. JSON-sökvägen som anger hela dokumentet är $ . Om värdet inte börjar med $ tolkas det som ett konstant värde. JSON-sökvägar som innehåller specialtecken bör vara undantagna som ['Egenskapsnamn']. Mer information finns i JSONPath-syntax. |
ConstValue | string |
Det konstanta värdet som ska användas för en kolumn i stället för något värde i JSON-filen. |
Transformering | string |
Transformering som ska tillämpas på innehållet med mappningstransformeringar. |
Viktigt
För köad inmatning:
- Om tabellen som refereras i mappningen inte finns i databasen skapas den automatiskt, eftersom giltiga datatyper anges 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 batchindelades med 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
[
{"Column": "event_timestamp", "Properties": {"Path": "$.Timestamp"}},
{"Column": "event_name", "Properties": {"Path": "$.Event.Name"}},
{"Column": "event_type", "Properties": {"Path": "$.Event.Type"}},
{"Column": "source_uri", "Properties": {"Transform": "SourceLocation"}},
{"Column": "source_line", "Properties": {"Transform": "SourceLineNumber"}},
{"Column": "event_time", "Properties": {"Path": "$.Timestamp", "Transform": "DateTimeFromUnixMilliseconds"}},
{"Column": "ingestion_time", "Properties": {"ConstValue": "2021-01-01T10:32:00"}},
{"Column": "full_record", "Properties": {"Path": "$"}}
]
Mappningen ovan serialiseras som en JSON-sträng när den tillhandahålls som en del av .ingest
hanteringskommandot.
.ingest into Table123 (@"source1", @"source2")
with
(
format = "json",
ingestionMapping =
```
[
{"Column": "column_a", "Properties": {"Path": "$.Obj.Property"}},
{"Column": "column_b", "Properties": {"Path": "$.Property"}},
{"Column": "custom_column", "Properties": {"Path": "$.[\'Property name with space\']"}}
]
```
)
Förskapad mappning
När mappningen har skapats i förväg refererar du till mappningen efter namn i hanteringskommandot .ingest
.
.ingest into Table123 (@"source1", @"source2")
with
(
format="json",
ingestionMappingReference = "Mapping_Name"
)
Identitetsmappning
Använd JSON-mappning under inmatning utan att definiera ett mappningsschema (se identitetsmappning).
.ingest into Table123 (@"source1", @"source2")
with
(
format="json"
)
Kopiera JSON-mappning
Du kan kopiera JSON-mappning av en befintlig tabell och skapa en ny tabell med samma mappning med hjälp av följande process:
Kör följande kommando i tabellen vars mappning du vill kopiera:
.show table TABLENAME ingestion json mappings | extend formatted_mapping = strcat("'",replace_string(Mapping, "'", "\\'"),"'") | project formatted_mapping
Använd utdata från kommandot ovan för att skapa en ny tabell med samma mappning:
.create table TABLENAME ingestion json mapping "TABLENAME_Mapping" RESULT_OF_ABOVE_CMD
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för