Parquet-mappning
Använd Parquet-mappning för att mappa inkommande data till kolumner i tabeller när källfilen för inmatning är i Parquet-format.
Varje element i mappningslistan definierar mappningen för en specifik kolumn. Dessa element konstrueras från tre egenskaper: column
, datatype
och properties
. Läs mer i översikten över datamappningar.
Varje Parquet-mappningselement måste innehålla någon av följande valfria egenskaper:
Egenskap | Typ | Description |
---|---|---|
Fält | string |
Namnet på fältet i Parquet-posten. |
Sökväg | string |
Om värdet börjar med $ tolkas det som sökvägen till fältet i Parquet-dokumentet som blir innehållet i kolumnen i tabellen. Sökvägen som anger hela Parquet-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ärde som ska användas för en kolumn i stället för något värde i Parquet-filen. |
Transformering | string |
Transformering som ska tillämpas på innehållet med mappningstransformeringar. |
Anteckning
Fält och sökväg utesluter varandra.
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, med tanke på att giltiga datatyper har angetts för alla kolumner.
- Om en kolumn som refereras 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 batchas med hjälp av 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.
Parquet-typkonverteringar
Omfattande stöd ges för att konvertera datatyper när du matar in eller frågar efter data från en Parquet-källa.
Följande tabell innehåller en mappning av Parquet-fälttyper och de tabellkolumntyper som de kan konverteras till. Den första kolumnen visar Parquet-typen och de andra visar de tabellkolumntyper som de kan konverteras till.
Anteckning
För Parquest DECIMAL-typer anges den fysiska typen inom parentes, enligt följande:
- I32: INT32 (32-bitars heltal)
- I64: INT64 (64-bitars heltal)
- FLBA: Bytematris med fast längd
- BA: Bytematris
Parquet-typ | boolesk | int | long | real | decimal | datetime | tidsintervall | sträng | guid | dynamisk |
---|---|---|---|---|---|---|---|---|---|---|
INT8 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
INT16 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
INT32 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
INT64 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
UINT8 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
UINT16 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
UINT32 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
UINT64 | ✔️ | ✔️ | ✔️ | ❌ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
FLOAT32 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
FLOAT64 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
BOOLEAN | ✔️ | ❌ | ❌ | ❌ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
DECIMAL (I32) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
DECIMAL (I64) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
DECIMAL (FLBA) | ❌ | ❌ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
DECIMAL (BA) | ✔️ | ❌ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ✔️ |
TIMESTAMP | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ | ❌ | ✔️ | ❌ | ❌ |
DATE | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ | ❌ | ✔️ | ❌ | ❌ |
STRÄNG | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ✔️ |
UUID | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ | ✔️ | ❌ |
JSON | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ | ❌ | ✔️ |
LISTA | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ |
KARTA | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ |
STRUCT | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ |
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 = "parquet",
ingestionMapping =
```
[
{"Column": "column_a", "Properties": {"Path": "$.Field1.Subfield"}},
{"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="parquet",
ingestionMappingReference = "Mapping_Name"
)
Identitetsmappning
Använd Parquet-mappning under inmatning utan att definiera ett mappningsschema (se identitetsmappning).
.ingest into Table123 (@"source1", @"source2")
with
(
format="parquet"
)
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för