Dari beberapa database yang berjalan diatas hadoop, kapan kita sebaiknya menggunakan Druid, dan apa kelebihannya?
Apache Druid adalah database terdistribusi yang berjalan di atas ekosistem Hadoop. Druid mempunyai karakter berorientasi kolom dan berkinerja tinggi sehingga cocok untuk aplikasi analitik secara batch dan streaming data.
Kelebihan Apache Druid :
- Kueri sangat cepat : Apache Druid dapat menjalankan kueri OLAP dalam hitungan milidetik pada dataset ber kardinalitas tinggi dan berdimensi tinggi dengan miliaran hingga triliunan baris tanpa menentukan atau menyimpan kueri dalam cache terlebih dahulu.
- Konkurensi tinggi dengan biaya terendah : Apache Druid mendukung ratusan ribu kueri per detik pada aplikasi analitik real-time dengan dengan performa konsisten dan arsitektur yang sangat efisien sehingga bisa menggunakan infrastruktur yang lebih kecil atau sedikit dibandingkan dengan database lainnya.
Fitur Apache Druid
Apache Druid memiliki fitur andalan, diantaranya adalah
- Mesin Kueri Interaktif : Druid menggunakan scatter/gather untuk kueri berkecepatan tinggi dengan memuat dataset terlebih dahulu ke dalam memori atau penyimpanan lokal untuk menghindari pergerakan data dan latensi jaringan.
- Format Data yang Dioptimalkan : Druid menyimpan data dalam segmen berbentuk kolom, dan data untuk setiap kolom diletakkan dalam struktur data yang terpisah. Dengan menyimpan setiap kolom secara terpisah, Druid mengurangi latensi kueri dengan hanya memindai kolom yang benar-benar diperlukan untuk kueri.
- Arsitektur Elastis : memungkinkan peningkatan dan penskalaan yang mudah dan cepat.
- Penyerapan data stream : Integrasi tanpa konektor dengan platform streaming memungkinkan query-on-arrival, skalabilitas tinggi, latensi rendah, dan konsistensi yang terjamin.
- Reliability : Layanan data otomatis termasuk backup data yang berkelanjutan, recovery otomatis, dan replikasi multi-node memastikan ketersediaan dan ketahanan yang tinggi.
Arsitektur Apache Druid
Apache Druid terdiri dari 4 komponen utama yaitu
- Master node : Mengelola data ingestion & ketersediaan resources.
- Query node : Mengambil kueri, menjalankan & mengembalikan hasilnya.
- Data node : Menyimpan data yang dapat dikueri & mengeksekusi ingestion data.
- Storage : Backup data permanen (disimpan di dalam hdfs).
Struktur Apache Druid memang tidak terlalu ringan, karena banyaknya komponen yang terlibat. Namun, hal ini memungkinkan penskalaan horizontal yang mudah dan sesuai, yaitu hanya dengan menambah jumlah node. Selain itu, Apache Druid memberikan kinerja tinggi dalam hal pemrosesan data, baik secara batch maupun real-time.
Use Case Apache Druid
Berikut ini adalah beberapa use case yang cocok untuk druid:
- Digital marketing (ads data)
- User analytics and behavior in your products
- APM (application performance management)
- OLAP and business intelligence
- IoT and devices metrics
Apache Druid saat ini telah digunakan oleh banyak perusahaan karena PERFORMANYA yang tinggi. Menurut laman Wikipedia, Apache Druid telah digunakan oleh beberapa perusahaan seperti Alibaba, Airbnb, Cisco, eBay, Lyft, Netflix, PayPal, Pinterest, Reddit, Twitter, Walmart, Wikimedia Foundation dan Yahoo.