Parquet-Zuordnung
Verwenden Sie Parquet-Zuordnung, um eingehende Daten Spalten in Tabellen zuzuordnen, wenn Ihre Erfassungsquelldatei im Parquet-Format vorliegt.
Jedes Element in der Zuordnungsliste definiert die Zuordnung für eine bestimmte Spalte. Diese Elemente werden aus drei Eigenschaften erstellt: column
, datatype
und properties
. Weitere Informationen finden Sie in der Übersicht zu Datenzuordnungen.
Jedes Parquet-Zuordnungselement muss eine der folgenden optionalen Eigenschaften enthalten:
Eigenschaft | Typ | BESCHREIBUNG |
---|---|---|
Feld | string |
Name des Felds im Parquet-Datensatz. |
Pfad | string |
Wenn der Wert mit $ beginnt, wird er als Pfad zum Feld im Parquet-Dokument interpretiert, das zum Inhalt der Spalte in der Tabelle wird. Der Pfad, der den gesamten Parquet-Datensatz angibt, ist $ . Wenn der Wert nicht mit $ beginnt, wird er als konstanter Wert interpretiert. Pfade, die Sonderzeichen enthalten, sollten als ['Eigenschaftsname'] gekennzeichnet werden. Weitere Informationen finden Sie unter JSONPath-Syntax. |
ConstValue | string |
Der konstante Wert, der für eine Spalte anstelle eines Werts in der Parquet-Datei verwendet werden soll. |
Transformieren | string |
Transformation, die mit Zuordnungstransformationen auf den Inhalt angewendet werden soll. |
Hinweis
Feld und Pfad schließen sich gegenseitig aus.
Die folgenden Alternativen sind gleichwertig:
[
{"Column": "event_name", "Properties": {"Path": "$.EventName"}}
]
[
{"Column": "event_name", "Properties": {"Field": "EventName"}}
]
Wichtig
Für die Erfassung in die Warteschlange:
- Wenn die Tabelle, auf die in der Zuordnung verwiesen wird, in der Datenbank nicht vorhanden ist, wird sie automatisch erstellt, da für alle Spalten gültige Datentypen angegeben werden.
- Wenn eine Spalte, auf die in der Zuordnung verwiesen wird, in der Tabelle nicht vorhanden ist, wird sie automatisch als letzte Spalte hinzugefügt, wenn daten zum ersten Mal für diese Spalte erfasst werden, wenn ein gültiger Datentyp für die Spalte angegeben ist. Um einer Zuordnung neue Spalten hinzuzufügen, verwenden Sie den Befehl .alter ingestion mapping.
- Daten werden mithilfe von Erfassungseigenschaften im Batch verarbeitet. Je differenzierter die Erfassungszuordnungseigenschaften verwendet werden, z. B. unterschiedliche ConstValue-Werte, desto fragmentierter wird die Erfassung, was zu Leistungseinbußen führen kann.
Parquet-Typkonvertierungen
Es wird umfassende Unterstützung für das Konvertieren von Datentypen bereitgestellt, wenn Sie Daten aus einer Parquet-Quelle erfassen oder abfragen.
Die folgende Tabelle enthält eine Zuordnung der Parquet-Feldtypen und der Tabellenspaltentypen, in die sie konvertiert werden können. Die erste Spalte listet den Parquet-Typ auf, und die anderen zeigen die Tabellenspaltentypen an, in die sie konvertiert werden können.
Hinweis
Für Parquest DECIMAL-Typen wird der physische Typ wie folgt in Klammern angegeben:
- I32: INT32 (32-Bit-Ganzzahl)
- I64: INT64 (64-Bit-Ganzzahl)
- FLBA: Bytearray mit fester Länge
- BA: Byte-Array
Parquet-Typ | bool | INT | long | real | Decimal | datetime | Zeitraum | Zeichenfolge | guid | dynamisch |
---|---|---|---|---|---|---|---|---|---|---|
INT8 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
INT16 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
INT32 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
INT64 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
UINT8 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
UINT16 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
UINT32 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
UINT64 | ✔️ | ✔️ | ✔️ | ❌ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
FLOAT32 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
FLOAT64 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
BOOLEAN | ✔️ | ❌ | ❌ | ❌ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
DEZIMAL (I32) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
DEZIMAL (I64) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
DECIMAL (FLBA) | ❌ | ❌ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
DECIMAL (BA) | ✔️ | ❌ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ✔️ |
timestamp | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ | ❌ | ✔️ | ❌ | ❌ |
DATE | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ | ❌ | ✔️ | ❌ | ❌ |
STRING | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ✔️ |
UUID | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ | ✔️ | ❌ |
JSON | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ | ❌ | ✔️ |
AUFLISTEN | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ |
MAP | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ |
STRUCT | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ |
Beispiele
[
{"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": "$"}}
]
Die obige Zuordnung wird als JSON-Zeichenfolge serialisiert, wenn sie im Rahmen des .ingest
Verwaltungsbefehls bereitgestellt wird.
.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\']"}},
]
```
)
Vorab erstellte Zuordnung
Wenn die Zuordnung vorab erstellt wurde, verweisen Sie im Verwaltungsbefehl anhand des Namens auf die .ingest
Zuordnung.
.ingest into Table123 (@"source1", @"source2")
with
(
format="parquet",
ingestionMappingReference = "Mapping_Name"
)
Identitätszuordnung
Verwenden Sie die Parquet-Zuordnung während der Erfassung, ohne ein Zuordnungsschema zu definieren (siehe Identitätszuordnung).
.ingest into Table123 (@"source1", @"source2")
with
(
format="parquet"
)
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für