All Products
Search
Document Center

Simple Log Service:Sintaks transformasi data

Last Updated:Sep 12, 2026

Simple Log Service (SLS) menggunakan DSL berbasis Python dan menyediakan lebih dari 200 fungsi bawaan untuk menyederhanakan tugas transformasi data. Topik ini menjelaskan mode bahasa, kategori fungsi, dan prinsip eksekusi DSL.

Mode bahasa

SLS DSL kompatibel dengan Python. Dalam mode standar, SLS DSL merupakan subset dari Python. Selain struktur data dasar dan ekspresi, semua aturan sintaks lainnya diimplementasikan melalui fungsi.

Kategori

Sintaks Python

Mode standar

Data structure

Number, string, dan Boolean

Didukung.

String yang diawali atau diakhiri dengan """ tidak didukung.

Tuple, list, set, dan dictionary

Didukung.

Struktur set tidak didukung, seperti {1,2,3}.

Object

Hanya struktur data ekstensi bawaan seperti objek table dan datetime yang didukung.

Basic syntax

Operator seperti tanda plus (+), tanda minus (-), tanda perkalian (×), dan operator pembagian (/)

Hanya operator perbandingan, seperti ==, !=, >, dan operator logika, seperti and, or, dan not, yang dapat digunakan langsung dalam kode. Operator lain harus dipanggil melalui fungsi.

Comments

Didukung.

Variable assignment

Tidak didukung. Nilai harus diteruskan melalui pemanggilan fungsi.

Prerequisites

Didukung. Fungsi: e_if, e_if_else, dan e_switch.

Loops

Didukung secara tidak langsung. Anda harus menggunakan fungsi bawaan bersarang untuk mengimplementasikan loop. Contoh fungsi berikut menunjukkan cara melakukan traversal elemen dalam array:

e_if(op_ge(op_len(json_parse(v("x"))), 1), e_set("x0", lst_get(v("x"), 0)))
e_if(op_ge(op_len(json_parse(v("x"))), 2), e_set("x1", lst_get(v("x"), 1)))

Function

Standard built-in functions of Python

Tidak didukung. Sebagai gantinya, Anda dapat menggunakan lebih dari 200 fungsi bawaan yang disediakan oleh SLS DSL.

Function calls

Didukung. Pemanggilan fungsi yang menggunakan parameter unpacking tidak didukung.

User-defined functions seperti def atau lambda

Tidak didukung. Namun, tersedia lebih dari 200 fungsi operasi global dan ekspresi yang dapat Anda panggil dalam kombinasi apa pun.

Module

Import dan penggunaan pustaka standar Python

Tidak didukung.

Creation of threads and processes

Tidak didukung.

Import pustaka pihak ketiga

Tidak didukung.

Koneksi jaringan eksternal atau pemanggilan perintah eksternal

Mencakup konektor resource bawaan.

Kategori fungsi

Dalam mode standar, SLS DSL melakukan semua operasi dengan memanggil fungsi. DSL menyediakan lebih dari 200 fungsi bawaan, yang dikategorikan menjadi fungsi pemrosesan global dan fungsi ekspresi.

  • Fungsi pemrosesan global

    Fungsi pemrosesan global digunakan untuk menerima, memproses, dan mengembalikan log. Hanya fungsi pemrosesan global yang dapat digunakan untuk menyusun setiap langkah dalam aturan transformasi.

  • Fungsi ekspresi

    Fungsi tujuan umum menerima parameter tertentu. Memanggilnya dalam kombinasi dan meneruskannya sebagai parameter ke fungsi operasi global mendefinisikan logika yang lebih fleksibel.

Tabel berikut membandingkan kemampuan kedua jenis fungsi tersebut.

Jenis fungsi

Langkah keseluruhan

Terima

Mengembalikan

Modifikasi log

Pemanggilan gabungan

Global Operations and Functions

Dukungan

Log diterima secara otomatis

Nol hingga beberapa log

Didukung dalam sebagian besar kasus

Dukungan

Expression functions

Tidak didukung

Hanya beberapa fungsi yang mendukung pemrosesan log langsung.

Struktur data tertentu

Tidak didukung

Dukungan

Fungsi pemrosesan global

Fungsi untuk menerima dan mengembalikan log.

Catatan

Hanya fungsi pemrosesan global yang dapat ditempatkan di baris pertama setiap langkah.

Aturan transformasi dalam SLS DSL menggunakan sintaks berikut:

GlobalFunction1(..parameters....)
GlobalFunction2(..parameters....)
GlobalFunction3(..parameters....)
GlobalFunction4(..parameters....)

Fungsi pemrosesan global terbagi menjadi dua kategori:

Klasifikasi fungsional

Deskripsi

Contoh

Flow control functions

Fungsi ini mengelola alur proses, menerima log, dan secara kondisional memanggil fungsi lain untuk memproses log.

e_if, e_switch, dan e_if_else.

Event processing functions

Fungsi ini mentransformasi log dan mengembalikan nol hingga beberapa log.

Berikut adalah contoh fungsi:

  • e_drop_fields: membuang field log.

  • e_kv: mengekstraksi dan menambahkan pasangan kunci-nilai dari log.

  • e_dict_map: memperkaya log.

Logika transformasi:

  • Pemrosesan dasar

    Fitur transformasi data membaca data dari Logstore sumber secara streaming. Fitur ini meneruskan setiap log sebagai dictionary ke aturan transformasi. Sistem kemudian memproses data log secara berurutan sesuai fungsi yang didefinisikan dalam aturan tersebut. Terakhir, sistem mengeluarkan hasil transformasi ke Logstore tujuan.

    Catatan

    Semua field dan nilai log dikirim sebagai string. Misalnya, log mentah {"__time__": "1234567", "__topic__": "", "k1": "test"} diproses oleh fungsi e_set("f1", 200). Fungsi ini menambahkan field f1 dengan nilai 200. Setelah diproses, log menjadi {"__time__": "1234567", "__topic__": "", "k1": "test", "f1": "200"}. Dalam log ini, baik field f1 maupun nilai 200 berupa string.

    Fungsi pemrosesan event yang ditentukan dalam aturan transformasi dipanggil secara berurutan. Setiap fungsi menerima log, memprosesnya, lalu mengembalikan log yang telah diproses.

    Misalnya, fungsi e_set("type", "test") menambahkan field type dengan nilai test ke log. Fungsi berikutnya menerima dan memproses log yang telah dimodifikasi tersebut.

  • Evaluasi kondisi

    • e_if: Fungsi e_if memungkinkan Anda menambahkan ekspresi kondisional untuk memproses log. Jika log tidak memenuhi kondisi yang ditentukan, operasi terkait dilewati. Fungsi e_if mengimplementasikan logika if.

      Misalnya, fungsi e_if(e_match("status", "200"), e_regex("data", "ret: \d+", "result")) memeriksa apakah nilai field status adalah 200. Jika benar, fungsi mengekstraksi field result dari field data menggunakan ekspresi reguler yang ditentukan. Jika tidak, tidak ada operasi yang dilakukan.

    • e_if_else: Fungsi ini bekerja mirip dengan operasi if_else.

  • Penghentian pemrosesan

    • Langkah dalam aturan transformasi mungkin tidak mengembalikan log, yang menandakan bahwa log tersebut telah dihapus.

      Misalnya, fungsi e_if(str_islower(v("result")), e_drop()) memeriksa apakah nilai field result berupa string huruf kecil. Jika benar, log dibuang dan langkah selanjutnya tidak dilakukan pada log ini. Sistem secara otomatis memproses log berikutnya.

    • Menulis log ke Logstore tujuan menghentikan pemrosesan. Misalnya, jika fungsi e_output menulis log ke Logstore tujuan dan menghapusnya, langkah selanjutnya tidak dilakukan pada log ini.

      Catatan

      Fungsi e_coutput menyalin log output dan melanjutkan pemrosesan langkah-langkah berikutnya.

  • Pemisahan paralel:

    Langkah dalam aturan transformasi mungkin mengembalikan beberapa log, yang menandakan bahwa log tersebut telah dipisah.

    Misalnya, fungsi e_split(data) memisahkan log menjadi dua log berdasarkan nilai field data. Jika nilai field data adalah "abc, xyz", log tersebut dipisah menjadi dua log. Di satu log, nilai field data adalah abc. Di log lainnya, nilainya adalah xyz.

    Log yang dihasilkan setelah pemisahan diproses dalam langkah-langkah berikutnya.

Untuk informasi lebih lanjut, lihat Global operation functions.

Fungsi ekspresi

Selain fungsi pemrosesan global, SLS DSL menyediakan 200 fungsi ekspresi yang menerima parameter tertentu dan mengembalikan nilai tertentu. Panggil fungsi ekspresi atau kombinasi fungsi ekspresi di dalam fungsi pemrosesan global. Sintaksnya sebagai berikut:

Global Processing Function 1(Expression Function 1(...), ...)
Global Processing Function 2(..., Expression Function 2(...), Expression Function 3(...), ...)

Fungsi ekspresi terbagi menjadi empat kategori:

Klasifikasi Fungsional

Deskripsi

Contoh

Event check functions

Fungsi ini menerima log, mengekstraksi atau mengambil informasi tertentu, dan mengembalikan informasi tersebut tanpa memodifikasi log.

Fungsi v mengembalikan nilai field log. Fungsi e_search dan e_match memeriksa apakah log memenuhi kondisi tertentu.

Resource functions

Fungsi ini terhubung ke resource on-premises atau eksternal, menggunakan pengaturan parameter tertentu, dan mengembalikan data seperti dictionary atau tabel.

Fungsi resource OSS, RDS, dan Logstore.

Control functions

Fungsi ini melakukan operasi logika pada ekspresi. Fungsi ini menggunakan parameter tertentu, menerapkan kontrol kondisional, dan memanggil fungsi ekspresi lain untuk mengembalikan hasil.

op_and, op_or, op_not, op_if, dan op_coalesce.

Other expression functions

Fungsi ini menerima nilai tetap atau hasil pemanggilan fungsi lain dan mengembalikan nilai tertentu.

Fungsi string, tanggal dan waktu, serta konversi tipe.

Untuk informasi lebih lanjut, lihat Expression functions.