All Products
Search
Document Center

Simple Log Service:Struktur data

Last Updated:Jun 11, 2026

Transformasi data menggunakan beberapa struktur data untuk memproses log, termasuk tipe dasar, tipe event, pengenal tetap, dan objek JSON.

Struktur data dasar

Tabel berikut mencantumkan tipe-tipe struktur data dasar.

Type

Description

Integer

Menetapkan nilai field atau meneruskan parameter ke fungsi.

Contoh: e_set("f1", 100) menetapkan field f1 ke 100.

Float

Menetapkan nilai field atau meneruskan parameter ke fungsi.

Contoh: e_set("f1", 1.5) menetapkan field f1 ke 1.5.

String

String mendukung konvensi berikut:

  • "abc" sama dengan 'abc'. Jika string berisi tanda kutip ganda ("), Anda dapat menggunakan tanda kutip tunggal untuk mengapit string tersebut, seperti 'abc"xyz'. Anda juga dapat menggunakan backslash (\) untuk meng-escape tanda kutip ganda, seperti "abc\"xyz".

    Backslash (\) merupakan karakter escape. Misalnya, "\\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. Misalnya, panjang string Chinese adalah 2.

  • Ekspresi reguler direpresentasikan sebagai string.

Catatan

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

Bytes

Berbeda dari encoding memori string. b'abc' digunakan sebagai parameter atau tipe kembalian untuk beberapa fungsi khusus.

empty

None atau null menunjukkan tidak adanya nilai. Beberapa parameter bernama dalam fungsi memiliki nilai default None, yang menunjukkan perilaku default tertentu.

Catatan

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

List

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

  • Beberapa fungsi menerima list sebagai parameter. Contoh: e_dict_map("dict data", ["f1", "f2", "f3"], ...).

  • Beberapa fungsi mengembalikan list. Contoh: json_select mengembalikan list saat memilih array.

Tuple

Berfungsi sama seperti list. Contoh: (1,2,3,4).

Dictionary (Dict)

Kumpulan pasangan kunci-nilai dalam format {"key": "value", "k2": "v2", ...}. Kunci biasanya berupa string unik. Nilai dapat berupa tipe apa pun yang tercantum di atas. Dictionary menggunakan penghashan dan tidak berurutan.

  • Event merupakan tipe dictionary khusus.

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

  • Dictionary juga digunakan sebagai data masukan dalam pemetaan dictionary.

Boolean (Bool)

Misalnya, True, False, true, atau false.

Table

Struktur tabel multi-kolom. Buat tabel dengan memuat konten CSV multi-baris dari sumber daya eksternal atau mengambil data multi-kolom dari ApsaraDB RDS atau Logstore. Tabel terutama digunakan untuk pemetaan penguatan data atau skenario konfigurasi lanjutan lainnya.

Datetime object

Merepresentasikan tanggal dan waktu dalam memori. Dapat dikonversi menjadi string timestamp Unix atau string waktu terformat, atau diteruskan ke fungsi dt_ untuk transformasi lebih lanjut.

Tipe event

Transformasi data mendukung tipe event berikut.

  • Tipe primitif

    Transformasi data memproses log sebagai dictionary, seperti {"__topic__": "access_log", "content": "....."}.

    Kunci dan nilai dictionary bersesuaian dengan field dan nilai log.

    Catatan

    Kunci dan nilai event keduanya berupa string, dan kunci harus unik.

  • Meta-field

    Meta-field meliputi:

    • Field waktu __time__: timestamp Unix (detik sejak 00:00:00 UTC, 1 Januari 1970) saat log ditulis. Disimpan sebagai string integer.

    • Topik __topic__: mengorganisasi log dalam Logstore berdasarkan topik. Anda dapat menentukan topik saat menulis atau mengkueri log.

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

  • Modifikasi field waktu

    Ubah nilai field waktu untuk mengubah waktu event. Anda juga dapat menggunakan fungsi datetime untuk operasi lain pada field ini.

    Catatan

    Jika field waktu dihapus, sistem akan menggunakan waktu pemrosesan sebagai waktu event saat mengirim log ke tujuan.

  • Tag

    Tag adalah label log yang digunakan untuk klasifikasi, dalam format __tag__:name.

    • Jika pencatatan Alamat IP publik diaktifkan untuk Logstore sumber, log akan menyertakan tag __tag__:__receive_time__.

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

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

  • Konversi otomatis saat penugasan

    Kunci dan nilai event berupa string. Saat Anda menetapkan nilai atau membuat field baru, kunci dan nilai secara otomatis dikonversi menjadi string. Contoh:

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

    Hal ini menetapkan v1 ke string "12.3" dan v2 ke string "true".

    Tabel berikut menunjukkan cara berbagai tipe data dikonversi menjadi string.

    Type

    Example

    Converted type

    Converted example

    Integer

    1

    String

    "1"

    Float

    1.2

    String

    "1.2"

    Boolean

    True

    String

    "true"

    Bytes

    b"123"

    Didekode menjadi 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]"

    Dictionary

    {"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 pengenal tetap untuk menyederhanakan kode dan meningkatkan keterbacaan.

Identifier

Type

Description

true

Boolean

Setara dengan True.

false

Boolean

Setara dengan False.

null

None

Setara dengan None.

F_TAGS

String

Regex untuk field TAG. Setara dengan "__tag__:.+".

F_META

String

Regex untuk field TAG, __topic__, dan __source__. Setara dengan __tag__:.+|__topic__|__source__.

F_TIME

String

Nama field __time__. Setara dengan __time__.

F_PACK_META

String

Regex untuk field pack meta. Setara dengan "__pack_meta__|__tag__:__pack_id__".

F_RECEIVE_TIME

String

Field tag untuk waktu penerimaan log server. Setara dengan "__tag__:__receive_time__".

C_JOB_REGION

String

ID wilayah tugas transformasi data, seperti cn-hangzhou. Contoh: e_set("job_region", C_JOB_REGION).

C_JOB_PROJECT

String

Nama proyek tugas transformasi data, seperti my-sls-project. Contoh: e_set("job_project", C_JOB_PROJECT).

C_JOB_NAME

String

Nama konfigurasi pekerjaan transformasi data, seperti etl-1649227848-642277. Contoh: e_set("job_name", C_JOB_NAME).

C_JOB_ID

String

ID run tugas transformasi data, seperti 73b96061b8c1c2101d558139bf641ea9. Contoh: e_set("job_id", C_JOB_ID).

Objek JSON

Objek JSON diurai dari string menggunakan json_select atau json_parse. Objek ini tersusun dari struktur data dasar. Tabel berikut menunjukkan cara string masukan dikonversi menjadi objek JSON.

String

JSON object

Actual type

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"}

Dictionary

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

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

Dictionary