全部产品
Search
文档中心

Simple Log Service:Instruksi operasi bidang

更新时间:Jan 10, 2026

Topik ini menjelaskan cara menggunakan instruksi operasi bidang dan memberikan contoh.

project

Instruksi ini mempertahankan bidang yang sesuai dengan pola tertentu dan mengganti nama bidang yang ditentukan. Selama eksekusi, semua ekspresi retensi bidang dijalankan terlebih dahulu, diikuti oleh ekspresi penggantian nama.

Penting

Bidang waktu default `__time__` dan `__time_ns_part__` dicadangkan dan tidak dapat diganti namanya atau ditimpa. Untuk informasi lebih lanjut, lihat Bidang Waktu.

Sintaksis

| project -wildcard <field-pattern>, <output>=<field>, ...

Parameter

Parameter

Type

Diperlukan

Deskripsi

wildcard

Bool

Tidak

Menentukan apakah akan mengaktifkan pencocokan pola wildcard. Secara default adalah pencocokan bidang eksak. Tambahkan parameter ini untuk mengaktifkan pencocokan pola wildcard.

field-pattern

FieldPattern

Ya

Nama bidang yang akan dipertahankan, atau kombinasi nama bidang dan karakter wildcard untuk memproses semua bidang yang cocok.

output

Field

Ya

Nama baru untuk bidang tersebut. Anda tidak dapat mengganti nama beberapa bidang menjadi bidang target yang sama.

Penting

Jika bidang baru memiliki nama yang sama dengan bidang dalam data masukan, lihat Mempertahankan dan Menimpa Nilai Lama dan Baru untuk kebijakan penugasan nilai.

field

Field

Ya

Nama asli dari bidang yang akan diganti namanya.

  • Jika bidang tidak ada dalam data masukan, operasi penggantian nama tidak dilakukan.

  • Bidang tidak dapat diganti namanya berkali-kali.

Contoh

  • Contoh 1: Mempertahankan bidang tertentu.

    * | project level, err_msg
  • Contoh 2: Mengganti nama bidang.

    * | project log_level=level, err_msg
  • Contoh 3: Mempertahankan bidang yang persis cocok dengan __tag__:*.

    * | project "__tag__:*"

project-away

Instruksi ini menghapus bidang yang sesuai dengan pola tertentu dan mempertahankan semua bidang lainnya.

Penting

Instruksi ini secara default mempertahankan bidang waktu __time__ dan __time_ns_part__. Untuk informasi lebih lanjut, lihat Bidang Waktu.

Sintaksis

| project-away -wildcard <field-pattern>, ...

Parameter

Parameter

Tipe

Diperlukan

Deskripsi

wildcard

Bool

Tidak

Menentukan apakah akan mengaktifkan pencocokan pola wildcard. Secara default adalah pencocokan bidang eksak. Tambahkan parameter ini untuk mengaktifkan pencocokan pola wildcard.

field-pattern

FieldPattern

Ya

Nama bidang yang akan dihapus, atau kombinasi nama bidang dan karakter wildcard untuk memproses semua bidang yang cocok.

project-rename

Instruksi ini mengganti nama bidang yang ditentukan dan mempertahankan semua bidang lainnya.

Penting

Bidang waktu default `__time__` dan `__time_ns_part__` dicadangkan dan tidak dapat diganti namanya atau ditimpa. Untuk informasi lebih lanjut, lihat Bidang Waktu.

Sintaksis

| project-rename <output>=<field>, ...

Parameter

Parameter

Tipe

Diperlukan

Deskripsi

output

Field

Ya

Nama baru untuk bidang tersebut. Anda tidak dapat mengganti nama beberapa bidang menjadi bidang target yang sama.

Penting

Jika bidang baru memiliki nama yang sama dengan bidang dalam data masukan, lihat Pemeliharaan dan Penimpaan Nilai Lama dan Baru untuk kebijakan penugasan nilai.

field

Field

Ya

Nama asli dari bidang yang akan diganti namanya.

  • Jika bidang tidak ada dalam data masukan, operasi penggantian nama tidak dilakukan.

  • Bidang tidak dapat diganti namanya berkali-kali.

Contoh

Mengganti nama bidang yang ditentukan.

* | project-rename log_level=level, log_err_msg=err_msg

expand-values

Instruksi ini memperluas lapisan pertama objek JSON dalam bidang tertentu untuk menghasilkan beberapa hasil.

Penting
  • Tipe data dari bidang keluaran adalah VARCHAR. Jika bidang hasil memiliki nama yang sama dengan bidang masukan, lihat Pemeliharaan dan Penimpaan Nilai untuk informasi tentang kebijakan penanganan nilai.

  • Anda tidak dapat melakukan operasi pada bidang waktu __time__ atau __time_ns_part__. Untuk informasi lebih lanjut, lihat Bidang Waktu.

  • Instruksi ini mendukung transformasi data dalam versi baru. Untuk skenario penggunaan SPL yang berbeda, lihat Referensi Umum.

Sintaksis

| expand-values -path=<path> -limit=<limit> -keep <field> as <output>

Parameter

Parameter

Tipe

Diperlukan

Deskripsi

path

JSONPath

Tidak

Menentukan jalur JSON dalam konten bidang untuk menemukan konten yang perlu diperluas.

Nilai default adalah kosong, yang berarti seluruh konten dari bidang yang ditentukan diperluas langsung.

limit

Integer

Tidak

Jumlah maksimum entri yang dapat diperluas dari setiap entri data mentah. Nilainya adalah bilangan bulat dari 1 hingga 10. Nilai default adalah 10.

keep

Bool

Tidak

Menentukan apakah akan mempertahankan bidang asli setelah ekspansi. Secara default, bidang asli tidak dipertahankan. Tambahkan parameter ini untuk mempertahankan bidang asli.

field

Field

Ya

Nama bidang asli yang akan diperluas. Tipe yang didukung adalah VARCHAR. Jika bidang yang ditentukan tidak ada, operasi ekspansi tidak dilakukan.

output

Field

Tidak

Nama bidang target untuk ekspansi. Jika tidak ditentukan, hasilnya akan dikeluarkan ke bidang masukan secara default.

Logika ekspansi untuk konten asli adalah sebagai berikut:

Array JSON: Memperluas setiap elemen array.

Kamus JSON: Memperluas setiap pasangan kunci-nilai dari kamus.

Tipe JSON lainnya: Mengembalikan nilai awal.

JSON tidak valid: Mengembalikan null.

Contoh

  • Contoh 1: Memperluas array untuk mengeluarkan beberapa hasil data.

    • Pernyataan SPL

      * | expand-values y
    • Data Masukan

      x: 'abc'
      y: '[0,1,2]'
    • Data Keluaran

      # Entri 1
      x: 'abc'
      y: '0'
      
      # Entri 2
      x: 'abc'
      y: '1'
      
      # Entri 3
      x: 'abc'
      y: '2'
  • Contoh 2: Memperluas kamus untuk mengeluarkan beberapa hasil data.

    • Pernyataan SPL

      * | expand-values y
    • Data Masukan

      x: 'abc'
      y: '{"a": 1, "b": 2}'
    • Data Keluaran

      # Entri 1
      x: 'abc'
      y: '{"a": 1}'
      
      # Entri 2
      x: 'abc'
      y: '{"b": 2}'
  • Contoh 3: Memperluas konten jalur JSON yang ditentukan dan mengeluarkannya ke bidang baru.

    • Pernyataan SPL

      * | expand-values -path='$.body' -keep content as body
    • Data Masukan

      content: '{"body": [0, {"a": 1, "b": 2}]}'
    • Data Keluaran

      # Entri 1
      content: '{"body": [1, 2]}'
      body: '0'
      
      # Entri 2
      content: '{"body": [1, 2]}'
      body: '{"a": 1, "b": 2}'