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, |
Float | Digunakan untuk mengatur nilai bidang atau melewatkan parameter ke fungsi. Sebagai contoh, |
String | Poin-poin berikut berlaku untuk 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, |
Bytes |
|
Null |
Catatan String kosong memiliki tipe data yang berbeda dari None atau null. |
List | Sebuah array, seperti [1,2,3,4].
|
Tuple | Tuple memiliki fungsi yang sama dengan list. Sebagai contoh, |
Kamus (Dict) | Koleksi pasangan kunci-nilai dalam format
|
Boolean (Bool) | Sebagai contoh, |
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 |
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.
CatatanKunci 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.
CatatanJika 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
v1menjadi string "12.3" dan nilai bidangv2menjadi string "true".Tabel berikut menunjukkan contoh bagaimana tipe data yang berbeda dikonversi menjadi string.
Tipe
Contoh
Tipe yang dikonversi
Contoh yang dikonversi
Integer
1String
"1"Float
1.2String
"1.2"Boolean
TrueString
"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 |
false | Boolean | Salah. Setara dengan |
null | None | Null. Setara dengan |
F_TAGS | String | Ekspresi reguler untuk bidang |
F_META | String | Ekspresi reguler untuk bidang |
F_TIME | String | Nama dari bidang |
F_PACK_META | String | Ekspresi reguler untuk bidang |
F_RECEIVE_TIME | String | Bidang |
C_JOB_REGION | String | ID wilayah di mana tugas transformasi data berada, seperti |
C_JOB_PROJECT | String | Nama proyek di mana tugas transformasi data berada, seperti |
C_JOB_NAME | String | Nama konfigurasi pekerjaan transformasi data, sebagai contoh, |
C_JOB_ID | String | ID jalankan dari tugas transformasi data, seperti |
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 |
|
| Integer |
|
| Float |
|
| Boolean |
|
| Boolean |
|
| String |
|
| None |
|
| List |
|
| List |
|
| Kamus |
|
| Kamus |