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: |
|
Float |
Menetapkan nilai field atau meneruskan parameter ke fungsi. Contoh: |
|
String |
String mendukung konvensi berikut:
Catatan
Gunakan tanda kutip tunggal untuk string luar dan tanda kutip ganda untuk nilai pencarian dalam. |
|
Bytes |
Berbeda dari encoding memori string. |
|
empty |
Catatan
String kosong memiliki tipe data yang berbeda dengan None atau null. |
|
List |
Sebuah array, seperti
|
|
Tuple |
Berfungsi sama seperti list. Contoh: |
|
Dictionary (Dict) |
Kumpulan pasangan kunci-nilai dalam format
|
|
Boolean (Bool) |
Misalnya, |
|
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 |
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.
CatatanKunci 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.
CatatanJika 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
v1ke string "12.3" danv2ke string "true".Tabel berikut menunjukkan cara berbagai tipe data dikonversi menjadi string.
Type
Example
Converted type
Converted example
Integer
1String
"1"Float
1.2String
"1.2"Boolean
TrueString
"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 |
|
false |
Boolean |
Setara dengan |
|
null |
None |
Setara dengan |
|
F_TAGS |
String |
Regex untuk field |
|
F_META |
String |
Regex untuk field |
|
F_TIME |
String |
Nama field |
|
F_PACK_META |
String |
Regex untuk field |
|
F_RECEIVE_TIME |
String |
Field |
|
C_JOB_REGION |
String |
ID wilayah tugas transformasi data, seperti |
|
C_JOB_PROJECT |
String |
Nama proyek tugas transformasi data, seperti |
|
C_JOB_NAME |
String |
Nama konfigurasi pekerjaan transformasi data, seperti |
|
C_JOB_ID |
String |
ID run tugas transformasi data, seperti |
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 |
|
|
|
Integer |
|
|
|
Float |
|
|
|
Boolean |
|
|
|
Boolean |
|
|
|
String |
|
|
|
None |
|
|
|
List |
|
|
|
List |
|
|
|
Dictionary |
|
|
|
Dictionary |