Share via


AVRO-leképezés

Az AVRO-leképezéssel a bejövő adatokat táblákon belüli oszlopokra képezheti le, ha a betöltési forrásfájl AVRO formátumú.

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 AVRO-leképezési elemnek az alábbi választható tulajdonságok egyikét kell tartalmaznia:

Tulajdonság Típus Description
Mező string Az AVRO rekord mezőjének neve.
Elérési út string Ha az érték azzal kezdődik $ , hogy az AVRO-dokumentumban lévő mező elérési útjaként lesz értelmezve, amely a tábla oszlopának tartalma lesz. A teljes AVRO rekordot leíró 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ó elérési utakat "Tulajdonságnév" néven kell feloldani. További információ: JSONPath szintaxis.
ConstValue string Az oszlophoz használandó állandó érték az AVRO-fájlban lévő érték helyett.
Átalakítás string Átalakítás, amelyet leképezési átalakításokkal kell alkalmazni a tartalomra.

Megjegyzés

A mező és az elérési út kölcsönösen kizáróak.

A következő alternatívák egyenértékűek:

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

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": {"Field": "Timestamp"}},
  {"Column": "event_name",      "Properties": {"Field": "Name"}},
  {"Column": "event_type",      "Properties": {"Field": "Type"}},
  {"Column": "event_time",      "Properties": {"Field": "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 = "AVRO",
      ingestionMapping =
      ```
      [
        {"Column": "column_a", "Properties": {"Field": "Field1"}},
        {"Column": "column_b", "Properties": {"Field": "$.[\'Field 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="AVRO",
        ingestionMappingReference = "Mapping_Name"
    )

Identitásleképezés

Az AVRO-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="AVRO"
    )