Pemetaan penyerapan
Berlaku untuk: ✅Microsoft Fabric✅Azure Data Explorer
Pemetaan penyerapan digunakan selama penyerapan untuk memetakan data masuk ke kolom di dalam tabel.
Data Explorer mendukung berbagai jenis pemetaan, baik berorientasi baris (CSV, JSON, AVRO dan W3CLOGFILE), dan berorientasi kolom (Parquet dan ORC).
Pemetaan penyerapan dapat dibuat sebelumnya dan dapat direferensikan dari perintah penyerapan menggunakan ingestionMappingReference
parameter. Penyerapan dimungkinkan tanpa menentukan pemetaan. Untuk informasi selengkapnya, lihat pemetaan identitas.
Setiap elemen dalam daftar pemetaan dibangun dari tiga bidang:
Properti | Wajib | Deskripsi |
---|---|---|
Kolom | ✔️ | Nama kolom target dalam tabel. |
Tipe data | Jenis data untuk membuat kolom yang dipetakan jika belum ada dalam tabel. | |
Properti | Properti-bag berisi properti khusus untuk setiap pemetaan seperti yang dijelaskan di setiap halaman jenis pemetaan tertentu. |
Penting
Untuk penyerapan antrean:
- Jika tabel yang direferensikan dalam pemetaan tidak ada di database, tabel akan dibuat secara otomatis, mengingat bahwa jenis data yang valid ditentukan untuk semua kolom.
- Jika kolom yang direferensikan dalam pemetaan tidak ada dalam tabel, kolom akan ditambahkan secara otomatis ke tabel sebagai kolom terakhir pada data pertama kali diserap untuk kolom tersebut, mengingat jenis data yang valid ditentukan untuk kolom. Untuk menambahkan kolom baru ke pemetaan, gunakan perintah pemetaan penyerapan .alter.
- Data di-batch menggunakan properti Penyerapan. Semakin berbeda properti pemetaan penyerapan yang digunakan, seperti nilai ConstValue yang berbeda, semakin terfragmentasi penyerapannya, yang dapat menyebabkan penurunan performa.
Jenis pemetaan yang didukung
Tabel berikut menentukan jenis pemetaan yang akan digunakan saat menyerap atau mengkueri data eksternal dengan format tertentu.
Format data | Jenis Pemetaan |
---|---|
CSV | Pemetaan CSV |
TSV | Pemetaan CSV |
TSVe | Pemetaan CSV |
PSV | Pemetaan CSV |
SCSV | Pemetaan CSV |
SOHsv | Pemetaan CSV |
TXT | Pemetaan CSV |
RAW | Pemetaan CSV |
JSON | Pemetaan JSON |
AVRO | Pemetaan AVRO |
APACHEAVRO | Pemetaan AVRO |
Parquet | Pemetaan Parquet |
ORC | Pemetaan ORC |
W3CLOGFILE | Pemetaan W3CLOGFILE |
Pemetaan identitas
Penyerapan dimungkinkan tanpa menentukan properti ingestionMapping
atau ingestionMappingReference
. Data dipetakan menggunakan pemetaan data identitas yang berasal dari skema tabel. Skema tabel tetap sama. format
properti harus ditentukan. Lihat format penyerapan.
Jenis format | Format | Pemetaan logika |
---|---|---|
Format data tabular dengan urutan kolom yang ditentukan, seperti format yang dipisahkan pemisah atau baris tunggal. | CSV, TSV, TSVe, PSV, SCSV, Txt, SOHsv, Raw | Semua kolom tabel dipetakan dalam urutan masing-masing ke kolom data agar muncul di sumber data. Jenis data kolom diambil dari skema tabel. |
Format dengan kolom atau rekaman bernama dengan bidang bernama. | JSON, Parquet, Avro, ApacheAvro, Orc, W3CLOGFILE | Semua kolom tabel dipetakan ke kolom data atau bidang data yang memiliki nama yang sama (peka huruf besar/kecil). Jenis data kolom diambil dari skema tabel. |
Peringatan
Setiap ketidakcocokan antara skema tabel dan struktur data, seperti jenis data kolom atau bidang, nama kolom atau bidang atau nomornya dapat mengakibatkan data yang kosong atau salah diserap.
Memindahkan transformasi
Beberapa pemetaan format data (Parquet, JSON, dan AVRO) mendukung transformasi ingest-time yang sederhana dan berguna. Jika skenario memerlukan pemrosesan yang lebih kompleks pada waktu penyerapan, gunakan Kebijakan pembaruan, yang memungkinkan penentuan pemrosesan ringan menggunakan ekspresi KQL.
Transformasi bergantung jalur | Deskripsi | Kondisi |
---|---|---|
PropertyBagArrayToDictionary | Mengubah array properti JSON, seperti {events:[{"n1":"v1"},{"n2":"v2"}]} , ke kamus dan menserialisasikannya ke dokumen JSON yang valid, seperti {"n1":"v1","n2":"v2"} . |
Tersedia untuk JSON jenis pemetaan , Parquet , AVRO , dan ORC . |
SourceLocation | Nama artefak penyimpanan yang menyediakan data, ketik string (misalnya, bidang "BaseUri" blob). | Tersedia untuk CSV jenis pemetaan , JSON , Parquet AVRO , ORC , dan W3CLOGFILE . |
SourceLineNumber | Offset relatif terhadap artefak penyimpanan tersebut, ketik long (dimulai dengan '1' dan bertahap per data baru). | Tersedia untuk CSV jenis pemetaan , JSON , Parquet AVRO , ORC , dan W3CLOGFILE . |
DateTimeFromUnixSeconds | Mengonversi angka yang menunjukkan waktu unix (detik sejak 1970-01-01) menjadi string tanggalwaktu UTC. | Tersedia untuk CSV jenis pemetaan , JSON , Parquet , AVRO , dan ORC . |
DateTimeFromUnixMilliseconds | Mengonversi angka yang mewakili unix-time (milidetik sejak 1970-01-01) menjadi string tanggalwaktu UTC. | Tersedia untuk CSV jenis pemetaan , JSON , Parquet , AVRO , dan ORC . |
DateTimeFromUnixMicroseconds | Mengonversi angka yang mewakili unix-time (microseconds sejak 1970-01-01) menjadi string tanggalwaktu UTC. | Tersedia untuk CSV jenis pemetaan , JSON , Parquet , AVRO , dan ORC . |
DateTimeFromUnixNanoseconds | Mengonversi angka yang mewakili unix-time (nanodetik sejak 1970-01-01) ke string tanggalwaktu UTC. | Tersedia untuk CSV jenis pemetaan , JSON , Parquet , AVRO , dan ORC . |
DropMappedFields | Memetakan objek dalam dokumen JSON ke kolom dan menghapus bidang berlapis yang sudah direferensikan oleh pemetaan kolom lainnya. | Tersedia untuk JSON jenis pemetaan , Parquet , AVRO , dan ORC . |
BytesAsBase64 | Memperlakukan data sebagai array byte dan mengonversinya menjadi string yang dikodekan base64. | Tersedia untuk AVRO jenis pemetaan. Untuk ApacheAvro format, jenis skema bidang data yang dipetakan harus atau bytes fixed jenis Avro. Untuk Avro format, bidang harus berupa array yang berisi nilai byte dari rentang [0-255]. null diserap jika data tidak mewakili array byte yang valid. |
Contoh transformasi pemetaan
DropMappedFields
transformasi:
Mengingat konten JSON berikut:
{
"Time": "2012-01-15T10:45",
"Props": {
"EventName": "CustomEvent",
"Revenue": 0.456
}
}
Pemetaan data berikut memetakan seluruh Props
objek ke dalam kolom Props
dinamis sambil mengecualikan kolom yang sudah dipetakan (Props.EventName
sudah dipetakan ke dalam kolom EventName
, sehingga dikecualikan).
[
{ "Column": "Time", "Properties": { "Path": "$.Time" } },
{ "Column": "EventName", "Properties": { "Path": "$.Props.EventName" } },
{ "Column": "Props", "Properties": { "Path": "$.Props", "Transform":"DropMappedFields" } },
]
Data yang diserap terlihat sebagai berikut:
Waktu | EventName | Prop |
---|---|---|
2012-01-15T10:45 |
CustomEvent |
{"Revenue": 0.456} |
BytesAsBase64
transformasi
Mengingat konten file AVRO berikut:
{
"Time": "2012-01-15T10:45",
"Props": {
"id": [227,131,34,92,28,91,65,72,134,138,9,133,51,45,104,52]
}
}
Pemetaan data berikut memetakan kolom ID dua kali, dengan dan tanpa transformasi.
[
{ "Column": "ID", "Properties": { "Path": "$.props.id" } },
{ "Column": "Base64EncodedId", "Properties": { "Path": "$.props.id", "Transform":"BytesAsBase64" } },
]
Data yang diserap terlihat sebagai berikut:
ID | Base64EncodedId |
---|---|
[227,131,34,92,28,91,65,72,134,138,9,133,51,45,104,52] |
44MiXBxbQUiGigmFMy1oNA== |