JSON-toewijzing
Gebruik JSON-toewijzing om binnenkomende gegevens toe te wijzen aan kolommen in tabellen wanneer uw opnamebronbestand de JSON-indeling heeft.
Elk element in de toewijzingslijst definieert de toewijzing voor een specifieke kolom. Deze elementen zijn samengesteld op basis van drie eigenschappen: column
, datatype
en properties
. Meer informatie in het overzicht van gegevenstoewijzingen.
Elk JSON-toewijzingselement moet een van de volgende optionele eigenschappen bevatten:
Eigenschap | Type | Description |
---|---|---|
Pad | string |
Als de waarde begint met $ deze wordt geïnterpreteerd als het JSON-pad naar het veld in het JSON-document dat de inhoud van de kolom in de tabel wordt. Het JSON-pad dat het hele document aanduidt, is $ . Als de waarde niet begint, $ wordt deze geïnterpreteerd als een constante waarde. JSON-paden die speciale tekens bevatten, moeten worden ge escaped als ['Eigenschapsnaam']. Zie JSONPath-syntaxis voor meer informatie. |
ConstValue | string |
De constante waarde die moet worden gebruikt voor een kolom in plaats van een waarde in het JSON-bestand. |
Transformeren | string |
Transformatie die moet worden toegepast op de inhoud met toewijzingstransformaties. |
Belangrijk
Voor opname in de wachtrij:
- Als de tabel waarnaar wordt verwezen in de toewijzing niet bestaat in de database, wordt deze automatisch gemaakt, op basis van het feit dat geldige gegevenstypen worden opgegeven voor alle kolommen.
- Als een kolom waarnaar wordt verwezen in de toewijzing niet bestaat in de tabel, wordt deze automatisch toegevoegd aan de tabel als de laatste kolom bij de eerste keer dat gegevens voor die kolom worden opgenomen, mits er een geldig gegevenstype is opgegeven voor de kolom. Als u nieuwe kolommen wilt toevoegen aan een toewijzing, gebruikt u de opdracht .alter ingestion mapping.
- Gegevens worden in batches gemaakt met behulp van opname-eigenschappen. Hoe meer verschillende opnametoewijzingseigenschappen worden gebruikt, zoals verschillende ConstValue-waarden, hoe gefragmenteerder de opname wordt, wat kan leiden tot prestatievermindering.
Voorbeelden
[
{"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": "$"}}
]
De bovenstaande toewijzing wordt geserialiseerd als een JSON-tekenreeks wanneer deze wordt opgegeven als onderdeel van de .ingest
beheeropdracht.
.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\']"}}
]
```
)
Vooraf gemaakte toewijzing
Wanneer de toewijzing vooraf is gemaakt, verwijst u naar de toewijzing op naam in de .ingest
beheeropdracht.
.ingest into Table123 (@"source1", @"source2")
with
(
format="json",
ingestionMappingReference = "Mapping_Name"
)
Identiteitstoewijzing
Gebruik JSON-toewijzing tijdens opname zonder een toewijzingsschema te definiëren (zie Identiteitstoewijzing).
.ingest into Table123 (@"source1", @"source2")
with
(
format="json"
)
JSON-toewijzing kopiëren
U kunt de JSON-toewijzing van een bestaande tabel kopiëren en een nieuwe tabel met dezelfde toewijzing maken met behulp van de volgende procedure:
Voer de volgende opdracht uit voor de tabel waarvan u de toewijzing wilt kopiëren:
.show table TABLENAME ingestion json mappings | extend formatted_mapping = strcat("'",replace_string(Mapping, "'", "\\'"),"'") | project formatted_mapping
Gebruik de uitvoer van de bovenstaande opdracht om een nieuwe tabel met dezelfde toewijzing te maken:
.create table TABLENAME ingestion json mapping "TABLENAME_Mapping" RESULT_OF_ABOVE_CMD
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor