Topik ini menjelaskan cara mengekspor log ke destinasi penyimpanan yang berbeda, dengan bidang dalam log yang bervariasi tergantung pada destinasi penyimpanannya.
Informasi latar belakang
Anda ingin mengekspor log ke destinasi penyimpanan yang berbeda, dengan bidang dalam log yang bervariasi sesuai destinasi. Dalam contoh ini, bidang dalam log mentah adalah f1, f2, f3, f4, dan f5.
Saat mengekspor ke target1, bidang f1 dan f2 dihapus, sedangkan semua bidang lainnya dipertahankan.
Saat mengekspor ke target2, bidang f3 dan f4 dihapus, dan semua bidang lainnya dipertahankan.
Contoh konfigurasi
Log mentah
__time__ : 1591754815
f1: GET
f2: https
f3: aliyun
f4: 200
f5: standardSintaks transformasi
Untuk informasi selengkapnya mengenai fungsi transformasi data yang digunakan dalam contoh berikut, lihat Ikhtisar Fungsi.
Gunakan fungsi e_set untuk menambahkan bidang baru bernama
tag: target1, target2ke log.Gunakan fungsi e_split untuk membagi log menjadi dua log berdasarkan bidang tag: satu log berisi
tag: target1dan log lainnya berisitag: target2.Hapus bidang f1 dan f2 dari log yang berisi
tag: target1, lalu ekspor bidang f3, f4, dan f5 ketarget1menggunakan fungsie_output. Aturan transformasi berikutnya tidak dijalankan untuk log ini.Hapus bidang f3 dan f4 dari log yang berisi
tag: target2.
e_set("tag", "target1, target2")
e_split("tag")
e_if(e_search("tag==target1"), e_compose(e_drop_fields("f1", "f2", regex=False), e_output("target1")))
e_drop_fields("f3", "f4", regex=False)
e_output("target2")Ekspor bidang ke target1
__time__ : 1591754815
f3: aliyun
f4: 200
f5: standardOutput ke target2
__time__ : 1591754815
f1: GET
f2: https
f5: standardPengaturan yang salah
Jika Anda menggunakan sintaks pemrosesan berikut, output ke target1 memenuhi persyaratan. Namun, output tersebut langsung dialirkan ke target2, sehingga menyebabkan hilangnya bidang f1 dan f2 dari log target2.
e_drop_fields("f1", "f2", regex=False)
e_coutput("target1")
e_drop_fields("f3", "f4", regex=False)
e_output("target2")