Share via


ORC-mappning

Använd ORC-mappning för att mappa inkommande data till kolumner i tabeller när källfilen för inmatning är i ORC-format.

Varje element i mappningslistan definierar mappningen för en specifik kolumn. Dessa element konstrueras från tre egenskaper: column, datatypeoch properties. Läs mer i översikten över datamappningar.

Varje ORC-mappningselement måste innehålla någon av följande valfria egenskaper:

Egenskap Typ Description
Fält string Namnet på fältet i ORC-posten.
Sökväg string Om värdet börjar med $ tolkas det som sökvägen till fältet i ORC-dokumentet som blir innehållet i kolumnen i tabellen. Sökvägen som anger hela ORC-posten är $. Om värdet inte börjar med $ tolkas det som ett konstant värde. Sökvägar som innehåller specialtecken bör vara undantagna som ['Egenskapsnamn']. Mer information finns i JSONPath-syntax.
ConstValue string Det konstanta värdet som ska användas för en kolumn i stället för något värde i ORC-filen.
Transformering string Transformering som ska tillämpas på innehållet med mappningstransformeringar.

Anteckning

Fält och sökväg är ömsesidigt uteslutande.

Följande alternativ är likvärdiga:

[
  {"Column": "event_name", "Properties": {"Path": "$.EventName"}}
]
[
  {"Column": "event_name", "Properties": {"Field": "EventName"}}
]

Viktigt

För köad inmatning:

  • Om tabellen som refereras i mappningen inte finns i databasen skapas den automatiskt, eftersom giltiga datatyper anges för alla kolumner.
  • Om en kolumn som refereras till i mappningen inte finns i tabellen läggs den automatiskt till i tabellen som den sista kolumnen första gången data matas in för den kolumnen, givet att en giltig datatyp har angetts för kolumnen. Om du vill lägga till nya kolumner i en mappning använder du kommandot .alter ingestion mapping .
  • Data batchindelades med inmatningsegenskaper. Ju mer distinkta egenskaper för inmatningsmappning som används, till exempel olika ConstValue-värden, desto mer fragmenterad blir inmatningen, vilket kan leda till prestandaförsämring.

Exempel

[
  {"Column": "event_timestamp", "Properties": {"Path": "$.Timestamp"}},
  {"Column": "event_name",      "Properties": {"Path": "$.Event.Name"}},
  {"Column": "event_type",      "Properties": {"Path": "$.Event.Type"}},
  {"Column": "event_time",      "Properties": {"Path": "$.Timestamp", "Transform": "DateTimeFromUnixMilliseconds"}},
  {"Column": "ingestion_time",  "Properties": {"ConstValue": "2021-01-01T10:32:00"}},
  {"Column": "full_record",     "Properties": {"Path": "$"}}
]

Mappningen ovan serialiseras som en JSON-sträng när den tillhandahålls som en del av .ingest hanteringskommandot.

.ingest into Table123 (@"source1", @"source2")
  with
  (
      format = "orc",
      ingestionMapping =
      ```
      [
        {"Column": "column_a", "Properties": {"Path": "$.Field1"}},
        {"Column": "column_b", "Properties": {"Path": "$.[\'Field name with space\']"}}
      ]
      ```
  )

Förskapad mappning

När mappningen har skapats i förväg refererar du till mappningen efter namn i hanteringskommandot .ingest .

.ingest into Table123 (@"source1", @"source2")
    with
    (
        format="orc",
        ingestionMappingReference = "ORC_Mapping"
    )

Identitetsmappning

Använd ORC-mappning under inmatning utan att definiera ett mappningsschema (se identitetsmappning).

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