Uncategorized

StarRocks vs Apache Druid / Habr


Apache Druid telah menjadi bahan pokok untuk analisis real-time. Namun, dengan tuntutan analitik yang terus berkembang dan canggih, perusahaan menghadapi tantangan dalam memenuhi kebutuhan kinerja data modern. Masuki StarRocks, database analitik sumber terbuka berkinerja tinggi, yang dirancang untuk memenuhi kebutuhan analitik tingkat lanjut perusahaan kontemporer dengan menawarkan kemampuan dan kinerja yang kuat.

Pada artikel ini, kita akan menjelajahi fungsi, kekuatan, dan tantangan Apache Druid dan StarRocks. Dengan menggunakan contoh praktis dan hasil benchmark, kami bertujuan untuk memandu Anda dalam mengidentifikasi database mana yang paling memenuhi kebutuhan data Anda.

Apa itu Apache Druid?

Apache Druid, yang didirikan pada tahun 2011, adalah database analitik real-time berkinerja tinggi yang dikenal dengan penyerapan data berlatensi rendah, serta menyediakan lingkungan yang fleksibel untuk eksplorasi dan analisis data. Ini unggul dalam kemampuannya memberikan agregasi berkinerja tinggi dan menunjukkan kemudahan dalam penskalaan horizontal. Khususnya, Druid mahir dalam memproses data pada skala yang signifikan dan melengkapi kemampuan pra-agregasi yang kuat, tidak hanya memfasilitasi penyimpanan tetapi juga kueri data yang bijaksana, memenuhi kebutuhan wawasan data waktu nyata.

Apa itu StarRock?

Didirikan pada tahun 2020, StarRocks diprakarsai oleh sekelompok anggota tim Apache Doris yang mengembangkan proyek baru, mengarahkannya ke arah yang berbeda. Meskipun permulaannya didasarkan pada Doris, 90% basis kode StarRocks telah dikembangkan kembali secara inovatif.

Meskipun merupakan pemain yang relatif baru di bidang ini, StarRocks dengan cepat mendapatkan daya tarik dan telah diadopsi oleh ratusan organisasi terkemuka, termasuk nama-nama terkenal seperti Airbnb, Expedia, Fanatics, Celonis, Lenovo, dan Tencent.

Platform ini unggul dalam berbagai aspek, seperti kinerja kueri luar biasa yang disorot oleh ClickBench, dukungan komprehensif untuk semua jenis operasi GABUNG yang meniadakan kebutuhan denormalisasi, kompatibilitas dengan protokol MySQL, dan konektivitas ke format tabel terbuka terkemuka seperti Apache Iceberg, Apache Hudi, Apache Hive, dan Delta Lake, serta kemampuan untuk memanfaatkan penyimpanan disk lokal.

Apache Druid vs. StarRocks: Menjelajahi Perbedaannya

Apache Druid adalah database analitik terdistribusi sumber terbuka populer yang sangat cocok untuk analisis waktu nyata dan kueri ad-hoc pada kumpulan data besar. Namun, ada beberapa kelemahan Apache Druid, termasuk:

  • Dukungan terbatas untuk GABUNG: Druid tidak dirancang untuk GABUNG, dan bisa sangat tidak efisien saat melakukan GABUNG pada kumpulan data besar. Selain itu, Druid memerlukan denormalisasi data, yang dapat menambah kompleksitas dan overhead pada pipeline data.

  • Kurangnya dukungan data streaming: Namun, jika Anda memerlukan pembaruan latensi rendah pada catatan yang ada menggunakan kunci utama, Anda mungkin memerlukan alternatif Apache Druid. Druid mendukung sisipan streaming tetapi tidak mendukung streaming pembaruan. Pembaruan harus dilakukan melalui pekerjaan batch latar belakang; memperbarui Druid mahal dan dapat memengaruhi kinerja. Jika Anda perlu sering memperbarui data Anda, Druid mungkin bukan pilihan yang tepat kecuali Anda dapat menyesuaikan proses pembaruan.

  • Kemampuan pengindeksan terbatas: Di Druid, Anda tidak pernah melihat pernyataan “buat indeks”. Sebaliknya, Druid secara otomatis (bitmap) mengindeks semua data.

  • Kurva pembelajaran yang curam: Druid bisa jadi rumit untuk disiapkan dan dikelola, dan perlu beberapa waktu untuk mempelajari cara menggunakannya secara efektif.

  • Kurangnya beberapa fitur: Druid tidak memiliki beberapa fitur yang umum di database analitis lainnya, seperti dukungan untuk transaksi ACID dan fungsi jendela.

StarRocks mengatasi masalah ini dengan:

  • BERGABUNG: StarRocks mendukung semua jenis GABUNG seperti gabungan dalam, luar, lokasi bersama, lateral, gabungan acak, dan gabungan siaran. Banyak pilihan. Pada akhirnya, memiliki kemampuan untuk melakukan JOINS berarti lebih sedikit rekayasa saluran data untuk memindahkan data dari berbagai sistem ke StarRocks.

  • Streaming masukkan dan upsert: Dengan tabel kunci utama kami, Anda dapat memperlakukan tabel ini seperti tabel OLTP. Cukup gunakan driver mysql dan lakukan penyisipan seperti yang biasa Anda lakukan di database OLTP.

  • Opsi pengindeksan lainnya: StarRocks mendukung bitmap (Anda memilih kolomnya) dan opsi lain seperti Bloom Filter. Alhasil, sangat “merdu”.

  • Kurva belajar: StarRocks memiliki arsitektur penerapan yang efisien. Ini sebenarnya ada 2 jenis node, node front end (FE) yang menyediakan layanan SQL dan node backend (BE) yang memproses dan menyimpan data. Anda dapat menskalakan setiap tingkatan secara independen satu sama lain.

  • ACID untuk penyerapan data: StarRocks mendukung ACID untuk penyerapan data. Itu semua dilakukan atau semua kembalikan.

Apache Druid vs. StarRocks: Perbandingan Tolok Ukur

Kami melakukan pengujian pada 99 kueri terhadap kumpulan data SSB 100GB. Kami menggunakan StarRocks dan Apache Druid untuk menanyakan salinan data yang sama.

Tes tabel tunggal SSB 100 GB

Tes tabel tunggal SSB 100 GB

Hasil tes menunjukkan hal itu StarRocks memiliki kinerja yang lebih baik dalam pengujian tabel tunggal SSB 100 GB. Di antara 11 kueri, StarRocks mengungguli Apache Druid dengan selisih besar dalam 9 kueri.

Apache Druid menggunakan pencarian dan penggabungan untuk mengimplementasikan asosiasi multi-tabel. Apache Druid®join hanya mendukung gabungan hash siaran dan tabel kecuali tabel paling kiri harus dapat disimpan dalam memori. Ini memiliki beberapa keterbatasan tetapi kurang optimalisasi. Pengujian ini menggunakan pencarian Apache Druid yang memiliki kinerja relatif baik untuk asosiasi multi-tabel. Dalam implementasi sebenarnya, fungsi pencarian mengungguli gabungan tabel pencarian. Oleh karena itu, pengujian ini menggunakan fungsi pencarian untuk asosiasi multi-tabel.

kinerja dalam asosiasi multi-tabel

kinerja dalam asosiasi multi-tabel

Hasil tes menunjukkan hal itu StarRocks memiliki kinerja yang lebih baik dalam asosiasi multi-tabel. Apache Druid® mencari data tabel yang dimuat sebelumnya ke memori setiap node. Ini memiliki keuntungan dalam skenario di mana tabel dimensi hanya berisi volume data sedang dan tidak diperlukan operasi pengacakan yang sering. Namun, pencarian Apache Druid® hanya dapat digunakan untuk pemetaan nilai kunci sederhana.

Apache Druid vs. StarRocks – Mana yang harus dipilih?

Kapan StarRocks cocok?

  • Kinerja: Dalam pengujian kami, untuk data yang dinormalisasi dan didenormalisasi, StarRocks memiliki kinerja yang lebih baik.

  • Penyederhanaan saluran data: Memiliki database yang mendukung GABUNG berarti lebih sedikit keharusan melakukan pekerjaan memindahkan kumpulan desain tabel yang dinormalisasi OLTP ke desain tabel datar OLAP.

  • Penghematan Biaya: Menghemat waktu orang (rekayasa data) dan biaya penyimpanan (duplikasi data akibat denormalisasi).

  • Streaming waktu nyata: StarRocks mendukung penyisipan dan peningkatan. Tidak perlu proses rumit untuk mendukung upsert.

  • Protokol yang kompatibel dengan kabel SQL: Hubungkan ke apa pun dan semua yang mendukung driver mySQL. Bukan Druid SQL.

  • Data Lakehouse: StarRocks juga memiliki kemampuan untuk menanyakan data dalam berbagai format tabel terbuka seperti Apache Iceberg, Apache Hive, Delta Lake, dan Apache Hudi. Apache Druid hanya mendukung baca untuk Apache Iceberg dan Apache Hive.

Kapan Apache Druid cocok?

Kasus penggunaan: Apache Druid vs. StarRocks

Sumber daya

Tolok Ukur: Apache Druid® vs. StarRocks: Penyelaman Mendalam dan Kueri StarRocks Mengungguli ClickHouse, Apache Druid®, dan Trino

Perbandingan: Apache Druid® vs. StarRocks: Penyelaman Mendalam



StarRocks vs Apache Druid / Habr

Leave a Reply

Your email address will not be published. Required fields are marked *