JSON-leképezés
A JSON-megfeleltetéssel a bejövő adatokat táblákon belüli oszlopokra képezheti le, ha a betöltési forrásfájl JSON formátumban van.
A leképezési lista minden eleme meghatározza egy adott oszlop leképezését. Ezek az elemek három tulajdonságból épülnek fel: column
, datatype
és properties
. További információ az adatleképezések áttekintésében.
Minden JSON-leképezési elemnek az alábbi választható tulajdonságok egyikét kell tartalmaznia:
Tulajdonság | Típus | Description |
---|---|---|
Elérési út | string |
Ha az érték azzal kezdődik $ , hogy a JSON-dokumentumban lévő mező JSON-elérési útjaként lesz értelmezve, amely a tábla oszlopának tartalma lesz. A teljes dokumentumot megjelenítő JSON-elérési út a következő $ : . Ha az érték nem azzal kezdődik $ , hogy az állandó értékként van értelmezve. A speciális karaktereket tartalmazó JSON-elérési utakat a tulajdonságnévként kell feloldani. További információ: JSONPath szintaxis. |
ConstValue | string |
A JSON-fájlban lévő érték helyett egy oszlophoz használandó állandó érték. |
Átalakítás | string |
Átalakítás, amelyet leképezési átalakításokkal kell alkalmazni a tartalomra. |
Fontos
Várólista-betöltés esetén:
- Ha a leképezésben hivatkozott tábla nem létezik az adatbázisban, a rendszer automatikusan létrehozza, mivel az összes oszlophoz érvényes adattípusok vannak megadva.
- Ha a megfeleltetésben hivatkozott oszlop nem létezik a táblában, a rendszer automatikusan hozzáadja a táblához, mint az utolsó oszlopot az adott oszlopra vonatkozó adatok első betöltésekor, mivel az oszlophoz érvényes adattípus van megadva. Ha új oszlopokat szeretne hozzáadni egy leképezéshez, használja a .alter betöltési leképezés parancsot.
- Az adatok kötegelése a betöltési tulajdonságok használatával történik. Minél több különböző betöltési leképezési tulajdonságot használ, például különböző ConstValue értékeket, annál töredezettebbé válik a betöltési folyamat, ami teljesítménycsökkenéshez vezethet.
Példák
[
{"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": "$"}}
]
A fenti leképezés JSON-sztringként van szerializálva, amikor a .ingest
felügyeleti parancs részeként van megadva.
.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\']"}}
]
```
)
Előre létrehozott leképezés
Ha a leképezés előre létrejött, hivatkozzon a leképezésre név szerint a .ingest
felügyeleti parancsban.
.ingest into Table123 (@"source1", @"source2")
with
(
format="json",
ingestionMappingReference = "Mapping_Name"
)
Identitásleképezés
A JSON-leképezés használata a betöltés során leképezési séma definiálása nélkül (lásd : identitásleképezés).
.ingest into Table123 (@"source1", @"source2")
with
(
format="json"
)
JSON-leképezés másolása
A következő eljárással másolhatja egy meglévő tábla JSON-leképezését, és létrehozhat egy új táblát ugyanazzal a leképezéssel:
Futtassa a következő parancsot azon a táblán, amelynek a leképezését másolni szeretné:
.show table TABLENAME ingestion json mappings | extend formatted_mapping = strcat("'",replace_string(Mapping, "'", "\\'"),"'") | project formatted_mapping
A fenti parancs kimenetével hozzon létre egy új táblát ugyanazzal a leképezéssel:
.create table TABLENAME ingestion json mapping "TABLENAME_Mapping" RESULT_OF_ABOVE_CMD
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: