Pemetaan penyerapan
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. Meskipun, penyerapan dimungkinkan tanpa menentukan pemetaan. Untuk informasi selengkapnya, lihat pemetaan identitas.
Setiap elemen dalam daftar pemetaan dibangun dari tiga bidang:
Properti | Diperlukan | Deskripsi |
---|---|---|
Kolom | ✔️ | Nama kolom target dalam tabel. |
Tipe data | Jenis data untuk membuat kolom yang dipetakan jika belum ada dalam tabel. | |
Properti | Tas properti yang 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 dalam 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 karena kolom terakhir pada data pertama kali diserap untuk kolom tersebut, mengingat jenis data yang valid ditentukan untuk kolom tersebut. Untuk menambahkan kolom baru ke pemetaan, gunakan perintah pemetaan penyerapan .alter.
- Data di-batch menggunakan properti Penyerapan. Semakin banyak properti pemetaan penyerapan yang berbeda 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 akan dipetakan menggunakan pemetaan data identitas yang berasal dari skema tabel. Skema tabel akan 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 pembatas 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 waktu penyerapan 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"}]} , menjadi 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 dalam: JSON , Parquet , AVRO , ORC dan W3CLOGFILE jenis pemetaan. |
DateTimeFromUnixSeconds | Mengonversi angka yang mewakili unix-time (detik sejak string tanggalwaktu 1970-01-01) ke UTC. | Tersedia untuk JSON jenis pemetaan , Parquet , AVRO dan ORC . |
DateTimeFromUnixMilliseconds | Mengonversi angka yang mewakili unix-time (milidetik sejak string tanggalwaktu 1970-01-01) ke UTC. | Tersedia untuk JSON jenis pemetaan , Parquet , AVRO dan ORC . |
DateTimeFromUnixMicroseconds | Mengonversi angka yang mewakili unix-time (microseconds sejak 1970-01-01) ke string tanggalwaktu UTC. | Tersedia untuk JSON jenis pemetaan , Parquet , AVRO dan ORC . |
DateTimeFromUnixNanoseconds | Mengonversi angka yang mewakili unix-time (nanodetik sejak 1970-01-01) ke string tanggalwaktu UTC. | Tersedia untuk JSON jenis pemetaan , 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 tidak termasuk 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== |
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk