- Di ES 8.18, perintah LOOKUP JOIN dari ES|QL diperkenalkan sehingga korelasi dan pengayaan data menjadi mungkin
- Dibandingkan fitur ENRICH yang sudah ada, pengaturan dan pengelolaannya lebih mudah, serta berguna untuk join data, analisis korelasi peristiwa keamanan, dan penggabungan informasi aset
- Diperkenalkan mode
lookup indexberbasis single-shard yang dirancang khusus untuk JOIN — dapat menyimpan hingga 2 miliar dokumen LOOKUP JOINmemudahkan penanganan join many-to-many dan cocok untuk penentuan field dinamis serta fungsi agregasi- Melalui Kibana atau API, indeks lookup dapat dibuat dengan mudah dari CSV, dan ke depan juga direncanakan dukungan INNER JOIN serta subquery
ES|QL Kini Punya JOIN Sungguhan: Memperkenalkan Fitur LOOKUP JOIN
Sekarang Elasticsearch Juga Mendukung JOIN Bergaya SQL
- Sejak Elasticsearch 8.18, ES|QL mendukung
LOOKUP JOIN - Ini adalah bentuk LEFT OUTER JOIN, dan data di sisi “kanan” dikelola melalui mode
lookupindex yang baru - Contoh:
- Menggabungkan nama environment (dev, QA, prod) berdasarkan alamat IP
- Menambahkan informasi karyawan, informasi aset, intelijen ancaman, dan lain-lain ke peristiwa keamanan
- Analisis environment berdasarkan kode respons dalam web log
Perbedaan dengan ENRICH yang Sudah Ada
-
Metode ENRICH
- Kebijakan berbasis indeks harus dikonfigurasi terlebih dahulu
- Setiap kali data berubah, kebijakan harus dijalankan ulang
- Saat ada banyak kecocokan, hasil dikembalikan sebagai field multi-nilai sehingga pascaproses menjadi rumit
- Kurang cocok untuk analisis agregasi dan statistik
- Cocok untuk data statis (informasi referensi yang hampir tidak berubah)
-
Metode LOOKUP JOIN
- Dapat langsung digunakan tanpa kebijakan terpisah
- Indeks dapat dimodifikasi secara langsung, sehingga perubahan langsung tercermin
- Saat ada banyak kecocokan, hasil dipisahkan per baris sehingga analisis lebih mudah
- Dioptimalkan untuk grouping dan agregasi (misalnya total trafik per pengguna)
- Juga lebih menguntungkan untuk data dinamis yang sering diperbarui
Contoh Penggunaan
FROM kibana_sample_data_logs
| WHERE response.keyword != "200"
| LOOKUP JOIN envs_lkp ON clientip
| STATS COUNT(*) by response, environment
-
Melakukan JOIN pada data environment per IP untuk menganalisis lokasi terjadinya error HTTP
-
Informasi kepemilikan tim juga bisa di-JOIN untuk mengetahui server yang dikelola tim mana yang mengalami masalah
FROM kibana_sample_data_logs | WHERE response.keyword != "200" | LOOKUP JOIN teams_lkp ON host | STATS num = COUNT(*) by host, response.keyword, team | SORT num DESC
Cara Membuat Lookup Index
-
Dari UI Kibana: Stack Management → Index Management → Create index
-
Melalui REST API:
PUT mylookupindex { "settings": { "index.mode": "lookup" } } -
Setelah mengunggah CSV melalui File Upload machine learning, mode
lookupdapat ditetapkan saat membuat indeks
Hal yang Perlu Diperhatikan dan Tips
- Karena JOIN adalah operasi yang berat, untuk field yang sering digunakan pertimbangkan ENRICH + denormalisasi saat ingest alih-alih
lookup lookup indexterdiri dari single shard dan memiliki batas maksimum 2 miliar dokumen- Seperti kueri biasa, indeks juga dapat diakses langsung dengan
FROM <lookup_index> - Data juga bisa dimasukkan melalui Logstash atau Elastic Agent (namun bukan data stream)
Rencana Ke Depan
- INNER JOIN, SUBQUERY, dan join ke indeks biasa juga direncanakan akan didukung
- Di Kibana juga akan disediakan UI untuk membuat dan mengedit lookup index secara langsung
- Contoh: drag and drop CSV di Discover → pembuatan indeks otomatis
- Juga direncanakan fitur pengelolaan Lookup berbasis GUI (mockup-nya juga sudah dipublikasikan)
Ringkasan dan Cara Memulai
LOOKUP JOINmasih berupa pratinjau teknis sebelum rilis resmi, tetapi merupakan fitur yang dapat membawa ES|QL ke level baru- Bisa mulai menggunakan Elasticsearch 8.18 atau 9.0 di Elastic Cloud
Belum ada komentar.