Parquet-leképezés

A Parquet-megfeleltetéssel táblákon belüli oszlopokra képezheti le a bejövő adatokat, ha a betöltési forrásfájl Parquet 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 Parquet-leképezési elemnek tartalmaznia kell a következő választható tulajdonságok egyikét:

Tulajdonság Típus Description
Mező string A Parquet rekord mezőjének neve.
Elérési út string Ha az érték azzal kezdődik $ , hogy az a Parquet-dokumentumban lévő mező elérési útjaként van értelmezve, amely a tábla oszlopának tartalma lesz. A teljes Parquet-rekordot jelölő elérési út a következő $: . Ha az érték nem azzal kezdődik $ , hogy á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 a Parquet-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ó.

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éshez:

  • Ha a leképezésben hivatkozott tábla nem létezik az adatbázisban, automatikusan létrejön, mivel minden 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 azt a táblához, mint az oszlop első adatbetöltésének utolsó oszlopa, mivel az oszlophoz érvényes adattípus van megadva. Ha új oszlopokat szeretne hozzáadni egy leképezéshez, használja az .alter ingestion mapping parancsot.
  • Az adatok kötegelése 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és, ami teljesítménycsökkenéshez vezethet.

Parquet típusú konverziók

Átfogó támogatást nyújtunk az adattípusok átalakításához, amikor parquet-forrásból adatokat fogad vagy kérdez le.

Az alábbi táblázat a Parquet mezőtípusok leképezését tartalmazza, és azokat a táblaoszloptípusokat, amelyekbe konvertálhatók. Az első oszlop felsorolja a Parquet típusát, a többi pedig azokat a táblázatoszloptípusokat, amelyekbe konvertálhatók.

Megjegyzés

A Parquest DECIMAL típusok esetében a fizikai típus zárójelben van megadva, az alábbiak szerint:

  • I32: INT32 (32 bites egész szám)
  • I64: INT64 (64 bites egész szám)
  • FLBA: Rögzített hosszúságú bájttömb
  • BA: Bájttömb
Parquet típusa logikai int hosszú valós szám tizedes tört dátum/idő időtartomány sztring guid dinamikus
INT8 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
INT16 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
INT32 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
INT64 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
UINT8 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
UINT16 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
UINT32 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
UINT64 ✔️ ✔️ ✔️ ✔️ ✔️
FLOAT32 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
FLOAT64 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
LOGIKAI ✔️ ✔️ ✔️
DECIMÁLIS (I32) ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
DECIMÁLIS (I64) ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
DECIMÁLIS (FLBA) ✔️ ✔️ ✔️ ✔️
DECIMÁLIS (BA) ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
IDŐBÉLYEGZŐ ✔️ ✔️
DATE ✔️ ✔️
KARAKTERLÁNC ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
UUID ✔️ ✔️
JSON ✔️ ✔️
LISTA ✔️
MEGJELENÍTÉSE ✔️
STRUCT ✔️

Példák

[
  {"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": "$"}}
]

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 = "parquet",
    ingestionMapping =
    ```
    [
      {"Column": "column_a", "Properties": {"Path": "$.Field1.Subfield"}},
      {"Column": "column_b", "Properties": {"Path": "$.[\'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="parquet",
      ingestionMappingReference = "Mapping_Name"
  )

Identitásleképezés

Parquet-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="parquet"
  )