Mapování příjmu dat
Mapování příjmu dat se používají během příjmu dat k mapování příchozích dat na sloupce uvnitř tabulek.
Data Explorer podporuje různé typy mapování, a to jak řádkově orientované (CSV, JSON, AVRO a W3CLOGFILE), tak sloupcově orientované (Parquet a ORC).
Mapování příjmu dat je možné předem vytvořit a lze na něj odkazovat z příkazu ingestování pomocí ingestionMappingReference
parametrů. Příjem dat je však možný bez zadání mapování. Další informace najdete v tématu mapování identit.
Každý prvek v seznamu mapování je vytvořen ze tří polí:
Vlastnost | Povinné | Popis |
---|---|---|
Sloupec | ✔️ | Název cílového sloupce v tabulce |
Datatype | Datový typ, pomocí kterého se vytvoří namapovaný sloupec, pokud v tabulce ještě neexistuje. | |
Vlastnosti | Sáček vlastností obsahující vlastnosti specifické pro každé mapování, jak je popsáno na každé stránce konkrétního typu mapování. |
Důležité
Pro příjem dat ve frontě:
- Pokud tabulka odkazovaná v mapování v databázi neexistuje, vytvoří se automaticky s ohledem na to, že jsou pro všechny sloupce zadané platné datové typy.
- Pokud sloupec odkazovaný v mapování v tabulce neexistuje, automaticky se přidá do tabulky jako poslední sloupec při prvním ingestování dat pro tento sloupec, protože pro sloupec je zadaný platný datový typ. Pokud chcete do mapování přidat nové sloupce, použijte příkaz .alter pro mapování příjmu dat.
- Data jsou dávková pomocí vlastností příjmu dat. Čím více jedinečných vlastností mapování příjmu dat, jako jsou různé hodnoty ConstValue, tím více fragmentace bude příjem dat, což může vést ke snížení výkonu.
Podporované typy mapování
Následující tabulka definuje typy mapování, které se mají použít při ingestování nebo dotazování externích dat určitého formátu.
Formát dat | Typ mapování |
---|---|
CSV | Mapování CSV |
TSV | Mapování CSV |
TSVe | Mapování CSV |
PSV | Mapování CSV |
SCSV | Mapování CSV |
SOHsv | Mapování CSV |
TXT | Mapování CSV |
SYROVÉ | Mapování CSV |
JSON | Mapování JSON |
AVRO | Mapování AVRO |
APACHEAVRO | Mapování AVRO |
Parquet | Mapování parketů |
ORC | Mapování ORC |
W3CLOGFILE | mapování W3CLOGFILE |
Mapování identit
Příjem dat je možný bez zadání ingestionMapping
nebo ingestionMappingReference
vlastností. Data budou mapována pomocí mapování dat identity odvozeného ze schématu tabulky. Schéma tabulky zůstane stejné. format
vlastnost by měla být zadána. Viz formáty příjmu dat.
Typ formátu | Formát | Logika mapování |
---|---|---|
Formáty tabulkových dat s definovaným pořadím sloupců, jako jsou formáty oddělené oddělovačem nebo jednořádkové formáty. | CSV, TSV, TSVe, PSV, SCSV, Txt, SOHsv, Raw | Všechny sloupce tabulky se mapují v příslušném pořadí na sloupce dat v pořadí, v jakém se zobrazují ve zdroji dat. Datový typ sloupec je převzat ze schématu tabulky. |
Formáty s pojmenovanými sloupci nebo záznamy s pojmenovanými poli | JSON, Parquet, Avro, ApacheAvro, Orc, W3CLOGFILE | Všechny sloupce tabulky se mapují na sloupce dat nebo pole záznamů se stejným názvem (rozlišují se malá a velká písmena). Datový typ sloupec je převzat ze schématu tabulky. |
Upozornění
Jakákoli neshoda mezi schématem tabulky a strukturou dat, jako jsou datové typy sloupců nebo polí, názvy sloupců nebo polí nebo jejich počet, může vést k prázdnému nebo nesprávnému ingestování dat.
Mapování transformací
Některá mapování formátů dat (Parquet, JSON a AVRO) podporují jednoduché a užitečné transformace v čase ingestace. Pokud scénář vyžaduje složitější zpracování v době příjmu, použijte zásadu aktualizace, která umožňuje definovat zjednodušené zpracování pomocí výrazu KQL.
Transformace závislá na cestě | Description | Podmínky |
---|---|---|
PropertyBagArrayToDictionary | Transformuje pole vlastností JSON, například {events:[{"n1":"v1"},{"n2":"v2"}]} , do slovníku a serializuje ho na platný dokument JSON, například {"n1":"v1","n2":"v2"} . |
K dispozici pro JSON typy mapování , Parquet AVRO a ORC . |
SourceLocation | Název artefaktu úložiště, který poskytl data, zadejte řetězec (například pole BaseUri objektu blob). | K dispozici pro CSV typy mapování , JSON Parquet , AVRO , ORC a W3CLOGFILE . |
SourceLineNumber | Posun vzhledem k danému artefaktu úložiště zadejte long (počínaje hodnotou 1 a přírůstkem na nový záznam). | K dispozici v typech JSON mapování , Parquet , AVRO ORC a W3CLOGFILE . |
DateTimeFromUnixSeconds | Převede číslo představující unix-time (sekundy od 1970-01-01) na řetězec data a času UTC. | K dispozici pro JSON typy mapování , Parquet AVRO a ORC . |
DateTimeFromUnixMilliseconds | Převede číslo představující unix-time (milisekundy od 1970-01-01) na řetězec data a času UTC. | K dispozici pro JSON typy mapování , Parquet AVRO a ORC . |
DateTimeFromUnixMicroseconds | Převede číslo představující unix-time (mikrosekundy od 1970-01-01) na řetězec data a času UTC. | K dispozici pro JSON typy mapování , Parquet AVRO a ORC . |
DateTimeFromUnixNanoseconds | Převede číslo představující unix-time (nanosekundy od 1. 1. 1970) na řetězec data a času UTC. | K dispozici pro JSON typy mapování , Parquet AVRO a ORC . |
DropMappedFields | Namapuje objekt v dokumentu JSON na sloupec a odebere všechna vnořená pole, na která už odkazují jiná mapování sloupců. | K dispozici pro JSON typy mapování , Parquet AVRO a ORC . |
BytesAsBase64 | Zachází s daty jako s polem bajtů a převede je na řetězec kódovaný jako base64. | K dispozici pro AVRO typ mapování. Pro ApacheAvro formát by typ schématu mapovaného datového pole měl být bytes typ nebo fixed Avro. Pro Avro formát by pole mělo být pole obsahující hodnoty bajtů z rozsahu [0–255]. null se ingestuje, pokud data nepředstavují platné pole bajtů. |
Příklady mapování transformací
DropMappedFields
Transformace:
Vzhledem k následujícímu obsahu JSON:
{
"Time": "2012-01-15T10:45",
"Props": {
"EventName": "CustomEvent",
"Revenue": 0.456
}
}
Následující mapování dat mapuje celý Props
objekt do dynamického sloupce Props
s vyloučením již namapovaných sloupců (Props.EventName
je již namapovaný do sloupce EventName
, takže je vyloučený).
[
{ "Column": "Time", "Properties": { "Path": "$.Time" } },
{ "Column": "EventName", "Properties": { "Path": "$.Props.EventName" } },
{ "Column": "Props", "Properties": { "Path": "$.Props", "Transform":"DropMappedFields" } },
]
Přijatá data vypadají takto:
Čas | EventName | Rekvizity |
---|---|---|
2012-01-15T10:45 |
CustomEvent |
{"Revenue": 0.456} |
BytesAsBase64
Transformace
Vzhledem k následujícímu obsahu souboru AVRO:
{
"Time": "2012-01-15T10:45",
"Props": {
"id": [227,131,34,92,28,91,65,72,134,138,9,133,51,45,104,52]
}
}
Následující mapování dat mapuje sloupec ID dvakrát, s transformací a bez transformace.
[
{ "Column": "Id", "Properties": { "Path": "$.props.id" } },
{ "Column": "Base64EncodedId", "Properties": { "Path": "$.props.id", "Transform":"BytesAsBase64" } },
]
Přijatá data vypadají takto:
Id | Idkódování base64 |
---|---|
[227,131,34,92,28,91,65,72,134,138,9,133,51,45,104,52] |
44MiXBxbQUiGigmFMy1oNA== |
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro