全部产品
Search
文档中心

Simple Log Service:Struktur data

更新时间:Nov 09, 2025

Topik ini menjelaskan struktur data yang digunakan dalam sintaks transformasi data.

Struktur data dasar

Tabel berikut menguraikan jenis-jenis struktur data dasar.

Tipe

Deskripsi

Integer

Digunakan untuk mengatur nilai bidang atau melewatkan parameter ke fungsi.

Sebagai contoh, e_set("f1", 100) mengatur nilai dari bidang f1 menjadi 100.

Float

Digunakan untuk mengatur nilai bidang atau melewatkan parameter ke fungsi.

Sebagai contoh, e_set("f1", 1.5) mengatur nilai dari bidang f1 menjadi 1.5.

String

Poin-poin berikut berlaku untuk string:

  • "abc" sama dengan 'abc'. Jika sebuah string mengandung tanda kutip ganda ("), Anda dapat menggunakan tanda kutip tunggal untuk mengapit string tersebut, seperti 'abc"xyz'. Anda juga dapat menggunakan backslash (\) untuk meloloskan tanda kutip ganda, seperti "abc\"xyz".

    Backslash (\) adalah karakter pelolosan. Sebagai contoh, "\\abc\\xyz" merepresentasikan string \abc\xyz.

  • r"\\10.64.1.1\share\folder" sama dengan "\\\\10.64.1.1\\share\\folder". Keduanya merepresentasikan string \\10.64.1.1\share\folder.

  • String multi-byte direpresentasikan dalam Unicode. Sebagai contoh, panjang string Chinese adalah 2.

  • Ekspresi reguler direpresentasikan sebagai string.

Catatan

Anda hanya dapat mengapit nilai pencarian dalam tanda kutip ganda (""). Gunakan tanda kutip tunggal ('') untuk mengapit string luar dan tanda kutip ganda ("") untuk mengapit nilai pencarian dalam. Sebagai contoh, e_search("domain: '/url/test.jsp'") salah. Format yang benar adalah e_search('domain: "/url/test.jsp"').

Bytes

b'abc' berbeda dari pengkodean memori string. Ini digunakan sebagai parameter atau tipe kembalian untuk beberapa fungsi khusus.

Null

None atau null menunjukkan ketiadaan nilai. Nilai default untuk parameter bernama dalam beberapa fungsi adalah None, yang menunjukkan perilaku default tertentu.

Catatan

String kosong memiliki tipe data yang berbeda dari None atau null.

List

Sebuah array, seperti [1,2,3,4].

  • Beberapa parameter fungsi menerima list. Sebagai contoh, e_dict_map("dict data", ["f1", "f2", "f3"], ...).

  • Beberapa fungsi mengembalikan list. Sebagai contoh, fungsi json_select mengembalikan list saat memilih array.

Tuple

Tuple memiliki fungsi yang sama dengan list. Sebagai contoh, (1,2,3,4).

Kamus (Dict)

Koleksi pasangan kunci-nilai dalam format {"key": "value", "k2": "v2", ...}. Kunci biasanya berupa string unik. Nilai bisa berupa salah satu dari tipe yang dijelaskan di atas. Kamus disimpan menggunakan hashing dan tidak berurutan untuk pencarian.

  • Event adalah tipe kamus khusus.

  • Beberapa fungsi menerima kamus dalam format tertentu. Sebagai contoh, {"key": [1,2,3], "key2": {"k3": "v3"}}.

  • Struktur kamus juga digunakan untuk data masukan dalam pemetaan kamus.

Boolean (Bool)

Sebagai contoh, True, False, true, atau false.

Tabel

Struktur tabel multi-kolom. Anda dapat membuat tabel dengan memuat konten CSV multi-baris dari sumber daya eksternal, atau dengan mengambil data multi-kolom dari RDS atau Logstore. Tabel terutama digunakan untuk pemetaan pengayaan data atau skenario konfigurasi lanjutan lainnya.

Objek Datetime

Objek memori yang merepresentasikan tanggal dan waktu. Dapat dikonversi ke string timestamp Unix atau string waktu yang diformat. Dapat juga dilewatkan ke fungsi kelas dt_ lainnya untuk transformasi lebih lanjut.

Jenis Event

Event terdiri dari beberapa komponen dan karakteristik, yang dijelaskan sebagai berikut:

  • Tipe Primitif

    Proses transformasi data memproses data log sebagai struktur kamus, seperti {"__topic__": "access_log", "content": "....."}.

    Kunci dan nilai kamus sesuai dengan bidang dan nilai log.

    Catatan

    Kunci dan nilai event keduanya adalah string, dan kuncinya harus unik.

  • Bidang Meta

    Bidang meta mencakup hal-hal berikut:

    • Bidang waktu __time__: Bidang ini menunjukkan waktu ketika data log ditulis. Nilainya adalah string integer dalam format waktu Unix standar, yang mewakili jumlah detik sejak 00:00:00 UTC pada 1 Januari 1970.

    • Topik __topic__: Log dalam Logstore dapat diorganisasikan berdasarkan topik. Anda dapat menentukan topik saat menulis log dan juga menentukan topik untuk menanyakannya.

    • Sumber __source__: Sumber log, seperti alamat IP mesin yang menghasilkan log.

  • Modifikasi Bidang Waktu

    Anda dapat mengubah nilai bidang waktu untuk mengubah waktu event log. Anda juga dapat menggunakan fungsi datetime untuk melakukan operasi lain pada bidang ini.

    Catatan

    Jika bidang waktu dihapus, waktu sistem saat data diproses digunakan sebagai waktu event baru ketika log dikirim ke tujuan.

  • Tag

    Tag adalah label pada log yang digunakan untuk klasifikasi. Tag menggunakan format __tag__:name.

    • Jika fitur untuk mencatat alamat IP publik diaktifkan untuk Logstore sumber, tag __tag__:__receive_time__ ada.

    • Log dari Container Service berisi beberapa tag terkait kontainer, seperti __tag__:__container_name__.

    • Anda dapat menambahkan atau memodifikasi tag. Sebagai contoh, untuk menambahkan tag bernama type, gunakan e_set("__tag__:type", "access_log").

  • Konversi Otomatis Saat Penugasan

    Kunci dan nilai event adalah string. Saat Anda menetapkan nilai ke event atau mengatur nilai bidang baru, kunci dan nilai secara otomatis dikonversi menjadi string. Sebagai contoh:

    e_set("v1", 12.3)
    e_set("v2", True)

    Ini mengatur nilai bidang v1 menjadi string "12.3" dan nilai bidang v2 menjadi string "true".

    Tabel berikut menunjukkan contoh bagaimana tipe data yang berbeda dikonversi menjadi string.

    Tipe

    Contoh

    Tipe yang dikonversi

    Contoh yang dikonversi

    Integer

    1

    String

    "1"

    Float

    1.2

    String

    "1.2"

    Boolean

    True

    String

    "true"

    Bytes

    b"123"

    Didekodekan ke string menggunakan UTF-8

    "123"

    Tuple

    • Contoh 1: (1, 2, 3)

    • Contoh 2: ("a", 1)

    String dari list

    • Contoh 1: "[1, 2, 3]"

    • Contoh 2: "[\"a\", 1]"

    List

    • Contoh 1: [1,2,3]

    • Contoh 2: ["a", 1]

    String

    • Contoh 1: "[1, 2, 3]"

    • Contoh 2: "[\"a\", 1]"

    Kamus

    {"1":2, "3":4}

    String

    "{\"1\": 2, \"3\": 4}"

    Datetime

    datetime(2018, 10, 10, 10, 10, 10)

    String format ISO

    2018-10-10 10:10:10

Pengenal tetap

Transformasi data menyediakan beberapa pengenal tetap untuk menyederhanakan kode dan meningkatkan keterbacaan.

Pengenal

Tipe

Deskripsi

true

Boolean

Benar. Setara dengan True.

false

Boolean

Salah. Setara dengan False.

null

None

Null. Setara dengan None.

F_TAGS

String

Ekspresi reguler untuk bidang TAG. Setara dengan "__tag__:.+".

F_META

String

Ekspresi reguler untuk bidang TAG, __topic__, dan __source__. Setara dengan __tag__:.+|__topic__|__source__.

F_TIME

String

Nama dari bidang __time__. Setara dengan __time__.

F_PACK_META

String

Ekspresi reguler untuk bidang pack meta. Setara dengan "__pack_meta__|__tag__:__pack_id__".

F_RECEIVE_TIME

String

Bidang tag untuk waktu ketika server menerima log. Setara dengan "__tag__:__receive_time__".

C_JOB_REGION

String

ID wilayah di mana tugas transformasi data berada, seperti cn-hangzhou. Sebagai contoh, e_set("job_region", C_JOB_REGION) menetapkan ID wilayah tugas transformasi data ke bidang job_region.

C_JOB_PROJECT

String

Nama proyek di mana tugas transformasi data berada, seperti my-sls-project. Sebagai contoh, e_set("job_project", C_JOB_PROJECT) menetapkan nama proyek tugas transformasi data ke bidang job_project.

C_JOB_NAME

String

Nama konfigurasi pekerjaan transformasi data, sebagai contoh, etl-1649227848-642277. Sebagai contoh, e_set("job_name", C_JOB_NAME) menetapkan nama konfigurasi pekerjaan transformasi data ke bidang job_name.

C_JOB_ID

String

ID jalankan dari tugas transformasi data, seperti 73b96061b8c1c2101d558139bf641ea9. Sebagai contoh, e_set("job_id", C_JOB_ID) menetapkan ID jalankan tugas transformasi data ke bidang job_id.

Objek JSON

Objek JSON adalah objek yang diurai dan diekstraksi dari string menggunakan fungsi json_select atau json_parse. Objek JSON terdiri dari struktur data dasar. Tabel berikut menunjukkan bagaimana string input yang berbeda dikonversi menjadi objek JSON yang sesuai.

String

Objek JSON

Tipe aktual

1

1

Integer

1.2

1.2

Float

true

True

Boolean

false

False

Boolean

"abc"

"abc"

String

null

None

None

["v1", "v2", "v3"]

["v1", "v2", "v3"]

List

["v1", 3, 4.0]

["v1", 3, 4.0]

List

{"v1": 100, "v2": "good"}

{"v1": 100, "v2": "good"}

Kamus

{"v1": {"v11": 100, "v2": 200}, "v3": "good"}

{"v1": {"v11": 100, "v2": 200}, "v3": "good"}

Kamus