Parquet-toewijzing
Gebruik Parquet-toewijzing om binnenkomende gegevens toe te wijzen aan kolommen in tabellen wanneer het bronbestand voor opname de Parquet-indeling heeft.
Elk element in de toewijzingslijst definieert de toewijzing voor een specifieke kolom. Deze elementen zijn opgebouwd uit drie eigenschappen: column
, datatype
en properties
. Meer informatie in het overzicht van gegevenstoewijzingen.
Elk Parquet-toewijzingselement moet een van de volgende optionele eigenschappen bevatten:
Eigenschap | Type | Description |
---|---|---|
Veld | string |
Naam van het veld in de Parquet-record. |
Pad | string |
Als de waarde begint met $ wordt deze geïnterpreteerd als het pad naar het veld in het Parquet-document dat de inhoud van de kolom in de tabel wordt. Het pad waarmee de hele Parquet-record wordt aangegeven, is $ . Als de waarde niet begint met $ wordt deze geïnterpreteerd als een constante waarde. Paden die speciale tekens bevatten, moeten worden ge escaped als ['Eigenschapsnaam']. Zie JSONPath-syntaxis voor meer informatie. |
ConstValue | string |
De constante waarde die moet worden gebruikt voor een kolom in plaats van een waarde in het Parquet-bestand. |
Transformeren | string |
Transformatie die moet worden toegepast op de inhoud met toewijzingstransformaties. |
Notitie
Veld en Pad sluiten elkaar uit.
De volgende alternatieven zijn gelijkwaardig:
[
{"Column": "event_name", "Properties": {"Path": "$.EventName"}}
]
[
{"Column": "event_name", "Properties": {"Field": "EventName"}}
]
Belangrijk
Voor opname in de wachtrij:
- Als de tabel waarnaar wordt verwezen in de toewijzing niet bestaat in de database, wordt deze automatisch gemaakt, aangezien geldige gegevenstypen zijn opgegeven voor alle kolommen.
- Als een kolom waarnaar wordt verwezen in de toewijzing niet bestaat in de tabel, wordt deze automatisch toegevoegd aan de tabel als de laatste kolom bij de eerste keer dat gegevens voor die kolom worden opgenomen, mits er een geldig gegevenstype is opgegeven voor de kolom. Als u nieuwe kolommen wilt toevoegen aan een toewijzing, gebruikt u de opdracht .alter ingestion mapping.
- Gegevens worden in batches uitgevoerd met behulp van opname-eigenschappen. Hoe meer unieke opnametoewijzingseigenschappen worden gebruikt, zoals verschillende ConstValue-waarden, hoe meer gefragmenteerd de opname wordt, wat kan leiden tot prestatievermindering.
Parquet-typeconversies
Er wordt uitgebreide ondersteuning geboden voor het converteren van gegevenstypen wanneer u gegevens opneemt of opvraagt uit een Parquet-bron.
De volgende tabel bevat een toewijzing van Parquet-veldtypen en de tabelkolomtypen waarin ze kunnen worden geconverteerd. In de eerste kolom wordt het parquet-type weergegeven en in de andere kolom worden de typen tabelkolommen weergegeven die kunnen worden geconverteerd.
Notitie
Voor de decimale typen Parquest wordt het fysieke type als volgt tussen haakjes opgegeven:
- I32: INT32 (32-bits geheel getal)
- I64: INT64 (64-bits geheel getal)
- FLBA: Bytematrix met vaste lengte
- BA: Bytematrix
Parquet-type | booleaans | int | long | werkelijk | decimal | datum/tijd | tijdsbestek | tekenreeks | guid | dynamisch |
---|---|---|---|---|---|---|---|---|---|---|
INT8 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
INT16 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
INT32 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
INT64 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
UINT8 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
UINT16 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
UINT32 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
UINT64 | ✔️ | ✔️ | ✔️ | ❌ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
FLOAT32 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
FLOAT64 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
BOOLEAN | ✔️ | ❌ | ❌ | ❌ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
DECIMAAL (I32) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
DECIMAAL (I64) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
DECIMAAL (FLBA) | ❌ | ❌ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
DECIMAAL (BA) | ✔️ | ❌ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ✔️ |
TIMESTAMP | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ | ❌ | ✔️ | ❌ | ❌ |
DATE | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ | ❌ | ✔️ | ❌ | ❌ |
STRING | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ✔️ |
UUID | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ | ✔️ | ❌ |
JSON | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ | ❌ | ✔️ |
LIST | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ |
MAP | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ |
STRUCT | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ |
Voorbeelden
[
{"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": "$"}}
]
De bovenstaande toewijzing wordt geserialiseerd als een JSON-tekenreeks wanneer deze wordt opgegeven als onderdeel van de .ingest
beheeropdracht.
.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\']"}},
]
```
)
Vooraf gemaakte toewijzing
Wanneer de toewijzing vooraf is gemaakt, verwijst u naar de toewijzing op naam in de .ingest
beheeropdracht.
.ingest into Table123 (@"source1", @"source2")
with
(
format="parquet",
ingestionMappingReference = "Mapping_Name"
)
Identiteitstoewijzing
Gebruik Parquet-toewijzing tijdens opname zonder een toewijzingsschema te definiëren (zie Identiteitstoewijzing).
.ingest into Table123 (@"source1", @"source2")
with
(
format="parquet"
)
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor