Parquet-Zuordnung
Gilt für: ✅Microsoft Fabric✅Azure Data Explorer
Verwenden Sie die Parkettzuordnung, um eingehende Daten Spalten innerhalb von Tabellen zuzuordnen, wenn ihre Aufnahmequelldatei im Parkettformat ist.
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 über Datenzuordnungen.
Jedes Parkettzuordnungselement muss eine der folgenden optionalen Eigenschaften enthalten:
Eigenschaft | Typ | Beschreibung |
---|---|---|
Feld | string |
Name des Felds im Parkettdatensatz. |
Pfad | string |
Wenn der Wert mit $ dem Wert beginnt, wird er als Pfad zum Feld im Parkettdokument interpretiert, der zum Inhalt der Spalte in der Tabelle wird. Der Pfad, der den gesamten Parkettdatensatz angibt, ist $ . Wenn der Wert nicht mit $ dem Wert beginnt, wird er als konstanter Wert interpretiert. Pfade, die Sonderzeichen enthalten, sollten als ['Eigenschaftsname'] escapen. Weitere Informationen finden Sie unter JSONPath-Syntax. |
ConstValue | string |
Der konstanten Wert, der für eine Spalte anstelle eines Werts innerhalb der Parkettdatei verwendet werden soll. |
Transformieren | string |
Transformation, die auf den Inhalt mit Zuordnungstransformationen 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 in die Warteschlange eingereihte Aufnahme:
- Wenn die tabelle, auf die in der Zuordnung verwiesen wird, nicht in der Datenbank vorhanden ist, wird sie automatisch erstellt, da gültige Datentypen für alle Spalten angegeben werden.
- Wenn eine Spalte, auf die in der Zuordnung verwiesen wird, in der Tabelle nicht vorhanden ist, wird sie automatisch der Tabelle als letzte Spalte hinzugefügt, wenn daten zum ersten Mal für diese Spalte aufgenommen werden, vorausgesetzt, für die Spalte wird ein gültiger Datentyp angegeben. Wenn Sie einer Zuordnung neue Spalten hinzufügen möchten, verwenden Sie den Befehl ".altergestion mapping".
- Daten werden mithilfe von Ingestion-Eigenschaften batched. Je unterschiedliche Zuordnungseigenschaften verwendet werden, z. B. verschiedene ConstValue-Werte, desto fragmentierter wird die Aufnahme, was zu Leistungsbeeinträchtigungen führen kann.
Holzbauartenumwandlungen
Es wird umfassende Unterstützung für die Konvertierung von Datentypen bereitgestellt, wenn Sie Daten aus einer Parkettquelle aufnehmen oder abfragen.
Die folgende Tabelle enthält eine Zuordnung von Parkettfeldtypen und die Tabellenspaltentypen, in die sie konvertiert werden können. In der ersten Spalte sind der Parketttyp aufgeführt, und die anderen zeigen die Tabellenspaltentypen an, in die sie konvertiert werden können.
Hinweis
Für Typ DECIMAL wird der physikalische Typ wie folgt in Klammern angegeben:
- I32: INT32 (32-Bit-Ganzzahl)
- I64: INT64 (64-Bit-Ganzzahl)
- FLBA: Bytearray mit fester Länge
- BA: Bytearray
Parquet-Typ | bool | int | long | real | Decimal | datetime | timespan | Zeichenfolge | guid | dynamisch |
---|---|---|---|---|---|---|---|---|---|---|
INT8 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
INT16 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
INT32 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
INT64 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
UINT8 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
UINT16 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
UINT32 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
UINT64 | ✔️ | ✔️ | ✔️ | ❌ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
FLOAT32 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
FLOAT64 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
BOOLEAN | ✔️ | ❌ | ❌ | ❌ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
DEZIMAL (I32) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
DEZIMAL (I64) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
DEZIMAL (FLBA) | ❌ | ❌ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
DEZIMAL (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 als Teil 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 bereits erstellt wurde, verweisen Sie im Verwaltungsbefehl auf die Zuordnung anhand des .ingest
Namens.
.ingest into Table123 (@"source1", @"source2")
with
(
format="parquet",
ingestionMappingReference = "Mapping_Name"
)
Identitätszuordnung
Verwenden Sie die Parkettzuordnung während der Aufnahme, ohne ein Zuordnungsschema zu definieren (siehe Identitätszuordnung).
.ingest into Table123 (@"source1", @"source2")
with
(
format="parquet"
)