Apache Pinot adalah gudang data OLAP yang didistribusikan secara real-time
Apache Pinot adalah solusi penyimpanan OLAP terdistribusi waktu nyata yang dirancang untuk menghadirkan analitik waktu nyata yang skalabel dan berlatensi rendah.
Pinot dapat menyerap data dari sumber data batch (seperti HDFS, S3, Azure Data Lake, Google Cloud Storage) serta sumber streaming (seperti Kafka). Pinot dirancang untuk dapat diskalakan secara horizontal, sehingga dapat diskalakan ke kumpulan data yang lebih besar dan tingkat kueri yang lebih tinggi sesuai kebutuhan.
Tentang Apache Pinot
Proyek Pinot awalnya dikembangkan oleh LinkedIn dan pada tahun 2015 dialihkan ke Apache Foundation untuk pengembangan bersama lebih lanjut. Penyimpanan ini dirancang untuk beroperasi di lingkungan di mana data baru terus ditambahkan dan direkayasa untuk memberikan latensi minimal dan dapat diprediksi, sehingga memungkinkan penggunaannya untuk pemrosesan kueri secara real-time.
Seperti kebanyakan gudang data dan solusi gudang data OLAP lainnya, Pinot mendukung bahasa kueri mirip SQL yang mendukung pemilihan, agregasi, pemfilteran, pengelompokan, pengurutan, dan kueri data lainnya.
Apache Pinot menyediakan skalabilitas horizontal dan cara untuk mencapai toleransi kesalahan dan ketahanan terhadap kegagalan perangkat lunak dan perangkat keras. Proses replikasi dan pencadangan terintegrasi langsung ke dalam siklus pemrosesan data untuk data yang ditambahkan ke penyimpanan data. Di satu sisi, pendekatan ini secara signifikan menyederhanakan arsitektur, tetapi di sisi lain, hal ini menimbulkan penundaan antara penambahan data dan ketersediaannya untuk kueri.
Data disimpan dalam tabel di dalam basis data berorientasi kolom, dan berbagai skema kompresi serta kemampuan untuk menempatkan beberapa nilai dalam satu kolom didukung. Pinot menyediakan sistem pengindeksan yang dapat dipasang (pluggable) yang dapat memanfaatkan berbagai teknologi pengindeksan (indeks terurut, indeks bitmap, indeks terbalik, indeks StarTree, filter Bloom, indeks rentang, indeks pencarian teks (Lucence/FST), indeks JSON, indeks geospasial).
Ciri-ciri yang menonjol dari Apache Pinot:
- Berorientasi Kolom– Basis data berorientasi kolom dengan berbagai skema kompresi seperti panjang proses dan panjang bit tetap.
- Pengindeksan yang dapat dicolokkan: Teknologi pengindeksan yang dapat dicolokkan, Indeks Terurut, Indeks Bitmap, Indeks Terbalik.
- Pengoptimalan kueri- Kemampuan untuk mengoptimalkan rencana kueri/eksekusi berdasarkan kueri dan metadata segmen.
- Penyerapan aliran dan batch: Penyerapan aliran Hadoop dan penyerapan batch hampir secara real-time.
- Konsultasi: Mesin eksekusi kueri berbasis SQL.
- Upsert selama konsumsi secara real time: memperbarui data dalam skala besar dengan konsistensi
- Beberapa bidang nilai: dukungan untuk bidang multi-nilai, memungkinkan Anda menanyakan bidang sebagai nilai yang dipisahkan koma.
- Cloud asli di Kubernetes: Bagan helm menyediakan penerapan cluster yang dapat diskalakan secara horizontal dan toleran terhadap kesalahan yang mudah dikelola dengan Kubernetes.
Versi baru Apache Pinot
Perlu disebutkan bahwa versi 1.0 dari Apache Pinot baru-baru ini dirilis , yang pada dasarnya merangkum banyak pekerjaan untuk menstabilkan basis kode dan mempertimbangkan keinginan komunitas (lebih dari 300 komentar telah dipertimbangkan).
Selain itu, perlu dicatat bahwa Multi-Stage Query Engine yang baru telah mencapai potensi penuhnya , memungkinkan dukungan untuk penggabungan tabel (JOIN). Mesin yang awalnya digunakan berkinerja sangat baik dengan operasi pemfilteran dan agregasi sederhana, tetapi untuk memastikan waktu eksekusi kueri yang dapat diprediksi, mesin tersebut tidak mendukung operasi penggabungan tabel.
Mesin baru ini mencakup tahapan perantara untuk memproses kueri kompleks, dan semantik SQL-nya mendekati ANSI SQL . Selain itu, versi baru ini menawarkan dukungan asli untuk memproses data JSON, menyediakan dukungan untuk nilai "NULL", terintegrasi dengan Apache Spark 3.x, dan meningkatkan implementasi tabel dalam mode Upsert (menambahkan kompresi segmen dan menyediakan dukungan untuk operasi penghapusan).
Terakhir, jika Anda tertarik untuk mempelajari lebih lanjut , Anda perlu tahu bahwa kode proyek ini ditulis dalam Java dan didistribusikan di bawah lisensi Apache. Anda dapat menemukan detail tentang versi baru di tautan berikut.