Fitur transformasi data di Simple Log Service menggunakan kelompok konsumen untuk mengonsumsi dan memproses data log. Anda dapat menggabungkan lebih dari 200 fungsi bawaan untuk membuat aturan transformasi. Dokumen ini menjelaskan cara data dijadwalkan selama transformasi dan cara kerja mesin aturan.
Dasar-dasar penjadwalan
Fitur transformasi data Simple Log Service menggunakan kelompok konsumen untuk mengonsumsi data log dari Logstore sumber sebagai aliran. Data tersebut diproses per log menggunakan aturan transformasi, lalu menghasilkan output.

Scheduling mechanism
Untuk setiap aturan transformasi, penjadwal menjalankan satu atau beberapa instans yang sedang berjalan. Setiap instans bertindak sebagai konsumen untuk satu atau beberapa shard di Logstore sumber. Penjadwal menentukan jumlah instans paralel berdasarkan penggunaan memori dan CPU. Jumlah maksimum instans sama dengan jumlah shard di Logstore sumber.
Running instance
Instans yang berjalan membaca log sumber dari shard yang ditugaskan sesuai konfigurasi Anda. Instans tersebut memproses data menggunakan aturan transformasi dan menghasilkan output ke Logstore tujuan. Aturan transformasi dapat menggunakan sumber daya eksternal untuk memperkaya data log. Instans ini menggunakan mekanisme kelompok konsumen untuk menyimpan posisi konsumsinya di dalam shard, sehingga jika instans berhenti secara tidak terduga, ia dapat melanjutkan konsumsi dari titik putus terakhir yang tersimpan.
Task stop
Jika Anda tidak mengonfigurasi waktu akhir untuk tugas, instans yang berjalan akan terus berjalan secara default, dan pekerjaan transformasi data tidak berhenti.
Jika Anda mengonfigurasi waktu akhir untuk tugas, instans yang berjalan akan memproses semua log yang diterima hingga waktu tersebut. Setelah itu, instans secara otomatis keluar dan pekerjaan transformasi data berhenti.
Jika suatu pekerjaan berhenti karena alasan apa pun dan dijalankan ulang, ia akan melanjutkan konsumsi dari posisi terakhir yang tersimpan secara default.
Dasar-dasar mesin aturan: Operasi dasar
Anda dapat menggunakan fungsi bawaan yang disediakan oleh SLS DSL untuk menulis aturan transformasi. Setiap fungsi merepresentasikan satu langkah transformasi, dan mesin aturan mengeksekusi fungsi-fungsi tersebut secara berurutan.
e_set("log_type", "access_log")
e_drop_fields("__action")
e_if(e_search("ret: pass"), e_set("result", "pass"))
e_if(e_search("ret: unknown"), DROP)Gambar berikut menunjukkan logikanya.
Logika dasar
Setiap fungsi event dalam suatu aturan dieksekusi secara berurutan. Setiap fungsi memproses dan memodifikasi sebuah event sebelum meneruskan event yang telah dimodifikasi tersebut ke fungsi berikutnya.
Sebagai contoh,
e_set("log_type", "access_log")menambahkan bidang bernamalog_typedengan nilai access_log ke setiap event. Fungsi berikutnya kemudian menerima event yang telah diperbarui, yang kini mencakup bidanglog_type.Logika bersyarat
Langkah-langkah dapat memiliki kondisi. Jika suatu event tidak memenuhi suatu kondisi, operasi pada langkah tersebut dilewati.
Sebagai contoh, fungsi
e_if(e_search("ret: pass"), e_set("result", "pass"))pertama-tama memeriksa apakah bidangretberisi pass. Jika kondisi tidak terpenuhi, tidak ada aksi yang dilakukan. Jika kondisi terpenuhi, fungsi tersebut mengatur nilai bidangresultmenjadi pass.Hentikan pemrosesan
Jika suatu langkah mengembalikan nol event, event tersebut dianggap dihapus.
Sebagai contoh,
e_if(e_search("ret: unknown"), DROP)membuang event yang nilai bidangret-nya adalah unknown. Setelah suatu event dibuang, tidak ada operasi lanjutan yang dilakukan terhadapnya, dan pemrosesan dilanjutkan ke event berikutnya.
Dasar-dasar mesin aturan: Output, copy, dan split
Mesin aturan juga mendukung penyalinan, pengeluaran (output), dan pemisahan (split) event.
e_coutput("archive_Logstore") )
e_split("log_type")
e_if(e_search("log_type: alert"), e_output("alert_Logstore") )
e_set("result", "pass")Asumsikan log sumber yang akan diproses adalah sebagai berikut:
log_type: access,alert
content: admin login to database.Gambar berikut menunjukkan logikanya.
Output event
Operasi output dapat dianggap sebagai jenis khusus dari penghentian pemrosesan. Sebagai contoh, pada Langkah 3, jika suatu event memiliki bidang
log_typedengan nilai alert, fungsie_output("alert_Logstore")dipanggil. Fungsi ini mengeluarkan event ke tujuan yang ditentukan, lalu menghapus event tersebut. Operasi selanjutnya tidak dilakukan terhadap event ini.Salin dan keluarkan event
Fungsi
e_coutputmenyalin event saat ini dan mengeluarkan salinannya. Event asli melanjutkan ke langkah pemrosesan berikutnya. Sebagai contoh, pada Langkah 1, semua event yang diterima disalin lalu dikeluarkan ke tujuanarchive_Logstore.Pemisahan dan pemrosesan paralel
Pada Langkah 2, jika bidang
log_typeberisi nilai access dan alert, fungsie_split("log_type")memisahkan event tersebut menjadi dua event terpisah berdasarkan nilai-nilai dalam bidanglog_type. Kedua event baru tersebut identik kecuali pada bidang log_type, yang akan memiliki nilai access pada satu event dan alert pada event lainnya. Setiap event baru tersebut kemudian melanjutkan langkah-langkah berikutnya secara independen.Setelah pemisahan, setiap event hasil pemisahan melanjutkan langkah-langkah berikutnya secara independen.