Mapování CSV

Mapování CSV použijte k mapování příchozích dat na sloupce uvnitř tabulek, pokud zdrojový soubor příjmu dat obsahuje některý z následujících tabulkových formátů oddělených oddělovači: CSV, TSV, PSV, SCSV, SOHsv, TXT a RAW. Další informace najdete v tématu podporované formáty dat.

Každý prvek v seznamu mapování definuje mapování pro konkrétní sloupec. Tyto prvky jsou vytvořeny ze tří vlastností: column, datatypea properties. Další informace najdete v přehledu mapování dat.

Každý prvek mapování sdíleného svazku clusteru musí obsahovat některou z následujících volitelných vlastností:

Vlastnost Typ Description
Řádová číslovka int Číslo pořadí sloupců ve formátu CSV.
ConstValue string Konstantní hodnota, která se má použít pro sloupec místo hodnoty v souboru CSV.
Transformace string Transformace, která by se měla použít u obsahu s mapováním transformací. Jedinou podporovanou transformací je SourceLocation.

Poznámka

  • Při ConstValue použití transformace nebo SourceLocation se Ordinal musí zrušit nastavení.
  • U formátů TXT a RAW je možné namapovat pouze Ordinal hodnotu 0, protože text je považován za jeden sloupec řádků.

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, přidá se automaticky do tabulky jako poslední sloupec při prvním ingestování dat pro tento sloupec, pokud je pro sloupec zadaný platný datový typ. Pokud chcete do mapování přidat nové sloupce, použijte příkaz .alter ingestion mapping.
  • Data jsou dávková pomocí vlastností příjmu dat. Čím více odlišných vlastností mapování příjmu dat se používá, například různé hodnoty ConstValue, tím více se příjem dat bude fragmentovat, což může vést ke snížení výkonu.

Příklady

[
  {"Column": "event_time", "Properties": {"Ordinal": "0"}},
  {"Column": "event_name", "Properties": {"Ordinal": "1"}},
  {"Column": "event_type", "Properties": {"Ordinal": "2"}},
  {"Column": "ingestion_time", "Properties": {"ConstValue": "2023-01-01T10:32:00"}}
  {"Column": "source_location", "Properties": {"Transform": "SourceLocation"}}
]

Mapování uvedené výše se serializuje jako řetězec JSON, pokud je k dispozici jako součást .ingest příkazu pro správu.

.ingest into Table123 (@"source1", @"source2")
    with
    (
        format="csv",
        ingestionMapping =
        ```
        [
            {"Column": "event_time", "Properties": {"Ordinal": "0"}},
            {"Column": "event_name", "Properties": {"Ordinal": "1"}},
            {"Column": "event_type", "Properties": {"Ordinal": "2"}},
            {"Column": "ingestion_time", "Properties": {"ConstValue": "2023-01-01T10:32:00"}},
            {"Column": "source_location", "Properties": {"Transform": "SourceLocation"}}
        ]
        ```
    )

Předem vytvořené mapování

Když je mapování předem vytvořené, odkazujte na mapování podle názvu v příkazu pro .ingest správu.

.ingest into Table123 (@"source1", @"source2")
    with
    (
        format="csv",
        ingestionMappingReference = "MappingName"
    )

Mapování identit

Použití mapování CSV během příjmu dat bez definování schématu mapování (viz mapování identit).

.ingest into Table123 (@"source1", @"source2")
    with
    (
        format="csv"
    )