3 poin oleh GN⁺ 2025-04-19 | Belum ada komentar. | Bagikan ke WhatsApp
  • 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 index berbasis single-shard yang dirancang khusus untuk JOIN — dapat menyimpan hingga 2 miliar dokumen
  • LOOKUP JOIN memudahkan 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 lookup index 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 lookup dapat 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 index terdiri 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 JOIN masih 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.

Belum ada komentar.