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"
)
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: