Parquet eşleme
Alım kaynak dosyanız Parquet biçiminde olduğunda gelen verileri tabloların içindeki sütunlara eşlemek için Parquet eşlemesini kullanın.
Eşleme listesindeki her öğe, belirli bir sütun için eşlemeyi tanımlar. Bu öğeler üç özellikten oluşturulur: column
, datatype
ve properties
. Veri eşlemelerine genel bakış bölümünde daha fazla bilgi edinin.
Her Parquet eşleme öğesi aşağıdaki isteğe bağlı özelliklerden birini içermelidir:
Özellik | Tür | Description |
---|---|---|
Alan | string |
Parquet kaydındaki alanın adı. |
Yol | string |
Değer ile $ başlıyorsa, Parquet belgesindeki alanın yolu olarak yorumlanır ve tablodaki sütunun içeriği olur. Parquet kaydının tamamını belirten yol şeklindedir $ . Değer ile $ başlamıyorsa sabit değer olarak yorumlanır. Özel karakterler içeren yollara ['Özellik Adı'] olarak kaçış karakteri verilmelidir. Daha fazla bilgi için bkz. JSONPath söz dizimi. |
ConstValue | string |
Parquet dosyasının içindeki bir değer yerine bir sütun için kullanılacak sabit değer. |
Dönüşüm | string |
Eşleme dönüştürmeleri ile içeriğe uygulanması gereken dönüştürme. |
Not
Alan ve Yol birbirini dışlar.
Aşağıdaki alternatifler eşdeğerdir:
[
{"Column": "event_name", "Properties": {"Path": "$.EventName"}}
]
[
{"Column": "event_name", "Properties": {"Field": "EventName"}}
]
Önemli
Kuyruğa alınan alım için:
- Eşlemede başvuruda bulunılan tablo veritabanında yoksa, tüm sütunlar için geçerli veri türlerinin belirtildiğinden otomatik olarak oluşturulur.
- Eşlemede başvuruda bulunılan bir sütun tabloda yoksa, sütun için geçerli bir veri türü belirtildiğinden, bu sütun için ilk veri alımında son sütun olarak tabloya otomatik olarak eklenir. Eşlemeye yeni sütunlar eklemek için .alter alma eşleme komutunu kullanın.
- Veri alımı özellikleri kullanılarak toplu olarak oluşturulur. Farklı ConstValue değerleri gibi daha farklı alım eşleme özellikleri kullanıldıkça, alma işlemi o kadar parçalanır ve bu da performans düşüşlerine yol açabilir.
Parquet türü dönüştürmeleri
Bir Parquet kaynağından veri alırken veya sorgularken veri türlerini dönüştürmek için kapsamlı destek sağlanır.
Aşağıdaki tabloda Parquet alan türlerinin ve dönüştürülebilecekleri tablo sütun türlerinin eşlemesi sağlanır. İlk sütunda Parquet türü, diğerleri ise dönüştürülebilecekleri tablo sütun türlerini gösterir.
Not
Parquest DECIMAL türleri için fiziksel tür parantez içinde aşağıdaki gibi belirtilir:
- I32: INT32 (32 bit tamsayı)
- I64: INT64 (64 bit tamsayı)
- FLBA: Sabit Uzunlukta Bayt Dizisi
- BA: Bayt Dizisi
Parquet türü | bool | int | long | real | decimal | datetime | timespan | string | guid | dynamic |
---|---|---|---|---|---|---|---|---|---|---|
INT8 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
INT16 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
INT32 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
INT64 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
UINT8 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
UINT16 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
UINT32 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
UINT64 | ✔️ | ✔️ | ✔️ | ❌ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
FLOAT32 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
FLOAT64 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
BOOLEAN | ✔️ | ❌ | ❌ | ❌ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
ONDALıK (I32) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
ONDALıK (I64) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
ONDALıK (FLBA) | ❌ | ❌ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ |
ONDALıK (BA) | ✔️ | ❌ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ✔️ |
TIMESTAMP | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ | ❌ | ✔️ | ❌ | ❌ |
DATE | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ | ❌ | ✔️ | ❌ | ❌ |
DİZE | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ✔️ |
UUID | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ | ✔️ | ❌ |
JSON | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ | ❌ | ✔️ |
LİSTE | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ |
HARİTA | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ |
STRUCT | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ |
Örnekler
[
{"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": "$"}}
]
Yukarıdaki eşleme, yönetim komutunun bir parçası .ingest
olarak sağlandığında JSON dizesi olarak seri hale getirilir.
.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\']"}},
]
```
)
Önceden oluşturulmuş eşleme
Eşleme önceden oluşturulduğunda, yönetim komutunda eşlemeye .ingest
ada göre başvurun.
.ingest into Table123 (@"source1", @"source2")
with
(
format="parquet",
ingestionMappingReference = "Mapping_Name"
)
Kimlik eşleme
Eşleme şeması tanımlamadan alma sırasında Parquet eşlemesini kullanın (bkz. kimlik eşlemesi).
.ingest into Table123 (@"source1", @"source2")
with
(
format="parquet"
)
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin