Bagikan melalui


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 JSONjenis pemetaan , Parquet, AVRO, dan ORC .
SourceLocation Nama artefak penyimpanan yang menyediakan data, ketik string (misalnya, bidang "BaseUri" blob). Tersedia untuk CSVjenis pemetaan , JSON, ParquetAVRO, ORC, dan W3CLOGFILE .
SourceLineNumber Offset relatif terhadap artefak penyimpanan tersebut, ketik long (dimulai dengan '1' dan bertahap per data baru). Tersedia untuk CSVjenis pemetaan , JSON, ParquetAVRO, ORC, dan W3CLOGFILE .
DateTimeFromUnixSeconds Mengonversi angka yang menunjukkan waktu unix (detik sejak 1970-01-01) menjadi string tanggalwaktu UTC. Tersedia untuk CSVjenis pemetaan , JSON, Parquet, AVRO, dan ORC .
DateTimeFromUnixMilliseconds Mengonversi angka yang mewakili unix-time (milidetik sejak 1970-01-01) menjadi string tanggalwaktu UTC. Tersedia untuk CSVjenis pemetaan , JSON, Parquet, AVRO, dan ORC .
DateTimeFromUnixMicroseconds Mengonversi angka yang mewakili unix-time (microseconds sejak 1970-01-01) menjadi string tanggalwaktu UTC. Tersedia untuk CSVjenis pemetaan , JSON, Parquet, AVRO, dan ORC .
DateTimeFromUnixNanoseconds Mengonversi angka yang mewakili unix-time (nanodetik sejak 1970-01-01) ke string tanggalwaktu UTC. Tersedia untuk CSVjenis 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 JSONjenis 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==