Mapování příjmu dat
Platí pro: ✅Microsoft Fabric✅Azure Data Explorer
Mapování příjmu dat se používají během příjmu dat k mapování příchozích dat na sloupce uvnitř tabulek.
Průzkumník dat podporuje různé typy mapování, které jsou orientované na řádky (CSV, JSON, AVRO a W3CLOGFILE) a sloupcově orientované (Parquet a ORC).
Mapování příjmu dat je možné předem vytvořit a lze na to odkazovat z příkazu ingestování pomocí ingestionMappingReference
parametrů. Příjem dat je 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 | Požadováno | Popis |
---|---|---|
Sloupec | ✔️ | Název cílového sloupce v tabulce |
Datatype | Datový typ, se kterým se vytvoří mapovaný sloupec, pokud ještě v tabulce neexistuje. | |
Vlastnosti | Kontejner 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é
Příjem dat ve frontě:
- Pokud tabulka odkazovaná v mapování v databázi neexistuje, vytvoří se automaticky vzhledem k tomu, že platné datové typy jsou zadány pro všechny sloupce.
- Pokud sloupec odkazovaný v mapování v tabulce neexistuje, přidá se automaticky do tabulky jako poslední sloupec při prvním ingestování dat pro tento sloupec, protože je pro sloupec zadaný platný datový typ. Pokud chcete do mapování přidat nové sloupce, použijte příkaz .alter ingestion mapping.
- Data se 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 fragmentovaný příjem dat se stane, 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í sdíleného svazku clusteru |
TSV | Mapování sdíleného svazku clusteru |
TSVe | Mapování sdíleného svazku clusteru |
PSV | Mapování sdíleného svazku clusteru |
SCSV | Mapování sdíleného svazku clusteru |
SOHsv | Mapování sdíleného svazku clusteru |
TXT | Mapování sdíleného svazku clusteru |
SYROVÝ | Mapování sdíleného svazku clusteru |
JSON | Mapování JSON |
AVRO | Mapování AVRO |
APACHEAVRO | Mapování AVRO |
Parquet | Mapování Parquet |
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 se mapují pomocí mapování dat identity odvozeného ze schématu tabulky. Schéma tabulky zůstává 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ů, například oddělovačem odděleným nebo jednořádkovým formátem. | 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 sloupce se přebírá ze schématu tabulky. |
Formátuje pojmenované sloupce nebo záznamy s pojmenovanými poli. | JSON, Parquet, Avro, ApacheAvro, Orc, W3CLOGFILE | Všechny sloupce tabulky se mapují na datové sloupce nebo pole záznamů se stejným názvem (rozlišují se malá a velká písmena). Datový typ sloupce se přebírá ze schématu tabulky. |
Upozorňující
Jakákoli neshoda mezi schématem tabulky a strukturou dat, jako jsou datové typy sloupců nebo polí, názvy sloupců nebo polí nebo jejich číslo, můžou vést k tomu, že se ingestují prázdná nebo nesprávná data.
Mapování transformací
Některá mapování formátu dat (Parquet, JSON a AVRO) podporují jednoduché a užitečné transformace ingestace v čase. Pokud scénář vyžaduje složitější zpracování v ingestující době, použijte zásady aktualizace, které umožňují definovat zjednodušené zpracování pomocí výrazu KQL.
Transformace závislá na cestě | Popis | Podmínky |
---|---|---|
PropertyBagArrayToDictionary | Transformuje pole vlastností JSON, jako {events:[{"n1":"v1"},{"n2":"v2"}]} je například , na slovník a serializuje ho na platný dokument JSON, například {"n1":"v1","n2":"v2"} . |
K dispozici pro JSON typy mapování , Parquet , AVRO a ORC mapování. |
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 , ORC Parquet AVRO , a W3CLOGFILE mapování. |
SourceLineNumber | Posun vzhledem k danému artefaktu úložiště, typu long (počínaje hodnotou 1 a zvýšením na nový záznam). | K dispozici pro CSV typy mapování , , JSON , ORC Parquet AVRO , a W3CLOGFILE mapování. |
DateTimeFromUnixSeconds | Převede číslo představující unix-time (sekundy od 1970-01-01) na řetězec data a času UTC. | K dispozici pro CSV typy mapování , AVRO JSON Parquet a ORC mapování. |
DateTimeFromUnixMilliseconds | Převede číslo představující unix-time (milisekundy od 1970-01-01) na řetězec data a času UTC. | K dispozici pro CSV typy mapování , AVRO JSON Parquet a ORC mapování. |
DateTimeFromUnixMicroseconds | Převede číslo představující unix-time (mikrosekundy od 1970-01-01) na řetězec data a času UTC. | K dispozici pro CSV typy mapování , AVRO JSON Parquet a ORC mapování. |
DateTimeFromUnixNanoseconds | Převede číslo představující unix-time (nanosekundy od 1970-01-01) na řetězec data a času UTC. | K dispozici pro CSV typy mapování , AVRO JSON Parquet a ORC mapování. |
DropMappedFields | Namapuje objekt v dokumentu JSON na sloupec a odebere všechna vnořená pole, na která už odkazuje mapování jiných sloupců. | K dispozici pro JSON typy mapování , Parquet , AVRO a ORC mapování. |
BytesAsBase64 | Považuje data za pole bajtů a převede je na řetězec s kódováním 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 nebo fixed typ Avro. Pro Avro formát by pole mělo být pole obsahující bajtové hodnoty z oblasti [0–255]. null se ingestuje, pokud data nepředstavují platné bajtové pole. |
Příklady mapování transformací
DropMappedFields
transformace:
S ohledem na následující obsah 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
a současně vyloučí už namapované sloupce (Props.EventName
je již namapováno do sloupce EventName
, takže je vyloučeno).
[
{ "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 a bez transformace.
[
{ "Column": "ID", "Properties": { "Path": "$.props.id" } },
{ "Column": "Base64EncodedId", "Properties": { "Path": "$.props.id", "Transform":"BytesAsBase64" } },
]
Přijatá data vypadají takto:
ID | Base64EncodedId |
---|---|
[227,131,34,92,28,91,65,72,134,138,9,133,51,45,104,52] |
44MiXBxbQUiGigmFMy1oNA== |