Pemetaan JSON

Beralih layanan menggunakan daftar drop-down Versi . Pelajari selengkapnya tentang navigasi.
Berlaku untuk: ✅ Microsoft Fabric ✅ Azure Data Explorer

Gunakan pemetaan JSON untuk memetakan data masuk ke kolom di dalam tabel saat file sumber penyerapan Anda dalam format JSON.

Setiap elemen dalam daftar pemetaan menentukan pemetaan untuk kolom tertentu. Elemen-elemen ini dibangun dari tiga properti: column, , datatypedan properties. Pelajari selengkapnya di gambaran umum pemetaan data.

Setiap elemen pemetaan JSON harus berisi salah satu properti opsional berikut:

Properti Tipe Deskripsi
Jalur string Jika nilai dimulai dengan $ ditafsirkan sebagai jalur JSON ke bidang dalam dokumen JSON yang akan menjadi konten kolom dalam tabel. Jalur JSON yang menunjukkan seluruh dokumen adalah $. Jika nilai tidak dimulai dengan $ nilai ditafsirkan sebagai nilai konstanta. Jalur JSON yang menyertakan karakter khusus harus di-escape sebagai ['Nama Properti']. Untuk informasi selengkapnya, lihat sintaks JSONPath.
ConstValue string Nilai konstanta yang akan digunakan untuk kolom alih-alih beberapa nilai di dalam file JSON.
Transformasi string Transformasi yang harus diterapkan pada konten dengan transformasi pemetaan.

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.

Contoh

[
  {"Column": "event_timestamp", "Properties": {"Path": "$.Timestamp"}},
  {"Column": "event_name",      "Properties": {"Path": "$.Event.Name"}},
  {"Column": "event_type",      "Properties": {"Path": "$.Event.Type"}},
  {"Column": "source_uri",      "Properties": {"Transform": "SourceLocation"}},
  {"Column": "source_line",     "Properties": {"Transform": "SourceLineNumber"}},
  {"Column": "event_time",      "Properties": {"Path": "$.Timestamp", "Transform": "DateTimeFromUnixMilliseconds"}},
  {"Column": "ingestion_time",  "Properties": {"ConstValue": "2021-01-01T10:32:00"}},
  {"Column": "full_record",     "Properties": {"Path": "$"}}
]

Pemetaan di atas diserialisasikan sebagai string JSON ketika disediakan sebagai bagian .ingest dari perintah manajemen.

.ingest into Table123 (@"source1", @"source2")
  with
  (
      format = "json",
      ingestionMapping =
      ```
      [
        {"Column": "column_a", "Properties": {"Path": "$.Obj.Property"}},
        {"Column": "column_b", "Properties": {"Path": "$.Property"}},
        {"Column": "custom_column", "Properties": {"Path": "$.[\'Property name with space\']"}}
      ]
      ```
  )

Pemetaan yang telah dibuat sebelumnya

Saat pemetaan telah dibuat sebelumnya, referensikan pemetaan berdasarkan nama dalam .ingest perintah manajemen.

.ingest into Table123 (@"source1", @"source2")
    with
    (
        format="json",
        ingestionMappingReference = "Mapping_Name"
    )

Pemetaan identitas

Gunakan pemetaan JSON selama penyerapan tanpa menentukan skema pemetaan (lihat pemetaan identitas).

.ingest into Table123 (@"source1", @"source2")
    with
    (
        format="json"
    )

Menyalin pemetaan JSON

Anda dapat menyalin pemetaan JSON dari tabel yang ada dan membuat tabel baru dengan pemetaan yang sama menggunakan proses berikut:

  1. Jalankan perintah berikut pada tabel yang pemetaannya ingin Anda salin:

    .show table TABLENAME ingestion json mappings
    | extend formatted_mapping = strcat("'",replace_string(Mapping, "'", "\\'"),"'")
    | project formatted_mapping
    
  2. Gunakan output dari perintah di atas untuk membuat tabel baru dengan pemetaan yang sama:

    .create table TABLENAME ingestion json mapping "TABLENAME_Mapping" RESULT_OF_ABOVE_CMD