All Products
Search
Document Center

Simple Log Service:Petunjuk operasi field

Last Updated:Jul 10, 2026

Topik ini menjelaskan cara menggunakan petunjuk operasi field beserta contohnya.

project

Petunjuk ini mempertahankan field yang sesuai dengan pola tertentu dan mengganti nama field yang ditentukan. Selama eksekusi, semua ekspresi retensi field dieksekusi terlebih dahulu, diikuti oleh ekspresi penggantian nama.

Penting

Field waktu default `__time__` dan `__time_ns_part__` bersifat reserved dan tidak dapat diganti namanya atau ditimpa. Untuk informasi lebih lanjut, lihat Time field.

Sintaksis

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

Parameter

Parameter

Tipe

Wajib

Deskripsi

wildcard

Bool

Tidak

Menentukan apakah akan mengaktifkan pencocokan pola wildcard. Nilai default adalah pencocokan field eksak. Tambahkan parameter ini untuk mengaktifkan pencocokan pola wildcard.

field-pattern

FieldPattern

Ya

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

output

Field

Ya

Nama baru untuk field tersebut. Anda tidak dapat mengganti nama beberapa field ke field target yang sama.

Penting

Jika field baru memiliki nama yang sama dengan field dalam data masukan, lihat Retaining and Overwriting Old and New Values untuk kebijakan penugasan nilai.

field

Field

Ya

Nama asli field yang akan diganti namanya.

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

  • Sebuah field tidak dapat diganti namanya beberapa kali.

Contoh

  • Contoh 1: Mempertahankan field tertentu.

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

    * | project log_level=level, err_msg
  • Contoh 3: Mempertahankan field yang secara eksak cocok dengan __tag__:*.

    * | project "__tag__:*"

project-away

Petunjuk ini menghapus field yang sesuai dengan pola tertentu dan mempertahankan semua field lainnya.

Penting

Petunjuk ini secara default mempertahankan field waktu __time__ dan __time_ns_part__. Untuk informasi lebih lanjut, lihat Time fields.

Sintaksis

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

Parameter

Parameter

Type

Wajib

Deskripsi

wildcard

Bool

Tidak

Menentukan apakah akan mengaktifkan pencocokan pola wildcard. Nilai default adalah pencocokan field eksak. Tambahkan parameter ini untuk mengaktifkan pencocokan pola wildcard.

field-pattern

FieldPattern

Ya

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

project-rename

Petunjuk ini mengganti nama field yang ditentukan dan mempertahankan semua field lainnya.

Penting

Field waktu default `__time__` dan `__time_ns_part__` bersifat reserved dan tidak dapat diganti namanya atau ditimpa. Untuk informasi lebih lanjut, lihat Time fields.

Sintaksis

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

Parameter

Parameter

Tipe

Wajib

Deskripsi

output

Field

Ya

Nama baru untuk field tersebut. Anda tidak dapat mengganti nama beberapa field ke field target yang sama.

Penting

Jika field baru memiliki nama yang sama dengan field dalam data masukan, lihat Retention and Overwriting of Old and New Values untuk kebijakan penugasan nilai.

field

Field

Ya

Nama asli field yang akan diganti namanya.

  • Jika field tersebut tidak ada dalam entri data, operasi penggantian nama tidak dilakukan.

  • Sebuah field tidak dapat diganti namanya beberapa kali.

Contoh

Ubah nama bidang yang ditentukan.

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

expand-values

Petunjuk ini memperluas lapisan pertama objek JSON dalam field tertentu untuk menghasilkan beberapa hasil.

Penting
  • Tipe data field output adalah VARCHAR. Jika field hasil memiliki nama yang sama dengan field input, lihat Value Retention and Overwriting untuk informasi tentang kebijakan penanganan nilai.

  • Anda tidak dapat melakukan operasi pada field waktu __time__ atau __time_ns_part__. Untuk informasi lebih lanjut, lihat Time fields.

  • Petunjuk ini mendukung transformasi data pada versi baru. Untuk berbagai skenario penggunaan SPL, lihat General Reference.

Sintaksis

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

Parameter

Parameter

Tipe

Wajib

Deskripsi

path

JSONPath

Tidak

Menentukan path JSON dalam konten field untuk menemukan konten yang perlu diperluas.

Nilai default kosong, artinya seluruh konten field yang ditentukan diperluas secara langsung.

limit

Integer

Tidak

Jumlah maksimum entri yang diperluas dari setiap entri data mentah. Nilai valid: 0 dan 1 hingga 10. Nilai default: 10.

Catatan

Ukuran kumulatif nilai yang diperluas untuk satu field tidak boleh melebihi 50 MB. Saat limit diatur ke 1 hingga 10, jumlah baris yang diperluas dibatasi oleh nilai ini.

Catatan

Saat limit diatur ke 0, jumlah baris yang diperluas per field tidak dibatasi. Namun, total data yang dikembalikan di seluruh field dan baris dibatasi sekitar 50 MB. Jika batas ini terlampaui, hanya hasil parsial yang telah diproses yang dikembalikan. Nilai field individu tidak dipotong.

Catatan

Nilai yang memicu batas tetap disertakan dalam hasil, sehingga data yang dikembalikan sebenarnya mungkin sedikit melebihi 50 MB. Pemotongan akibat batas ini bersifat diam dan tidak menghasilkan error atau peringatan apa pun.

keep

Bool

Tidak

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

field

Field

Ya

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

output

Field

Tidak

Nama field target untuk perluasan. Jika tidak ditentukan, hasilnya dikeluarkan ke field input secara default.

Logika perluasan untuk konten asli adalah sebagai berikut:

Array JSON: Memperluas setiap elemen array.

Kamus JSON: Memperluas setiap pasangan kunci-nilai kamus.

Tipe JSON lainnya: Mengembalikan nilai awal.

JSON tidak valid: Mengembalikan null.

Contoh

  • Contoh 1: Memperluas array untuk menghasilkan beberapa data keluaran.

    • 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 menghasilkan beberapa data keluaran.

    • 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 path JSON tertentu dan mengeluarkannya ke field 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}'