Apache Pinot adalah penyimpanan data OLAP yang terdistribusi secara real-time, dibuat untuk memberikan analisis real-time yang dapat diskalakan dengan latensi rendah. Itu dapat menyerap dari sumber data batch (seperti Hadoop HDFS, Amazon S3, Azure ADLS, Google Cloud Storage) serta sumber data streaming (seperti Apache Kafka).
Pinot dibuat oleh para insinyur di LinkedIn dan Uber dan dirancang untuk ditingkatkan dan diperluas tanpa batas atas. Performa selalu konstan berdasarkan ukuran klaster Anda dan ambang batas kueri per detik (QPS) yang diharapkan.
Untuk panduan memulai, resep penerapan, tutorial, dan banyak lagi, silakan kunjungi dokumentasi proyek kami di https://docs.pinot.apache.org.
Pinot awalnya dibuat di LinkedIn untuk mendukung aplikasi analitik real-time interaktif yang kaya seperti Siapa yang Melihat Profil, Analisis Perusahaan, Wawasan Bakat, dan banyak lagi. Manajer Restoran UberEats adalah contoh lain pelanggan yang menghadapi Aplikasi Analytics. Di LinkedIn, Pinot mendukung 50+ produk yang dapat dilihat pengguna, menyerap jutaan peristiwa per detik dan melayani 100 ribu+ kueri per detik dengan latensi milidetik.
Kueri Cepat : Memfilter dan menggabungkan kumpulan data petabyte dengan latensi P90 dalam puluhan milidetik—cukup cepat untuk menampilkan hasil langsung secara interaktif di UI.
Konkurensi Tinggi : Dengan aplikasi yang berhubungan dengan pengguna yang menanyakan Pinot secara langsung, aplikasi ini dapat melayani ratusan ribu kueri bersamaan per detik.
Antarmuka Kueri SQL : Antarmuka kueri SQL berstandar tinggi dapat diakses melalui editor kueri bawaan dan REST API.
Gabungan Serbaguna : Melakukan penggabungan fakta/dimensi dan fakta/fakta sewenang-wenang pada kumpulan data petabyte.
Berorientasi kolom : database berorientasi kolom dengan berbagai skema kompresi seperti Panjang Proses, Panjang Bit Tetap.
Pengindeksan yang dapat dicolokkan : teknologi pengindeksan yang dapat dicolokkan termasuk stempel waktu, terbalik, StarTree, filter Bloom, rentang, teks, JSON, dan opsi geospasial.
Streaming dan penyerapan batch : Penyerapan dari Apache Kafka, Apache Pulsar, dan AWS Kinesis secara real-time. Penyerapan batch dari Hadoop, Spark, AWS S3, dan banyak lagi. Gabungkan sumber batch dan streaming ke dalam satu tabel untuk pembuatan kueri.
Upsert selama penyerapan real-time : perbarui data dalam skala besar dengan konsistensi
Multitenancy Bawaan : Kelola dan amankan data dalam namespace logis yang terisolasi untuk pengelolaan sumber daya yang ramah cloud.
Dibangun untuk Skala : Pinot dapat diskalakan secara horizontal dan toleran terhadap kesalahan, dapat beradaptasi dengan beban kerja di seluruh spektrum penyimpanan dan throughput.
Cloud-native di Kubernetes : Bagan helm menyediakan penerapan cluster yang skalabel secara horizontal dan toleran terhadap kesalahan yang mudah dikelola menggunakan Kubernetes.
Pinot dirancang untuk mengeksekusi kueri OLAP waktu nyata dengan latensi rendah pada data dan peristiwa dalam jumlah besar. Selain penyerapan aliran waktu nyata, Pinot juga mendukung kasus penggunaan batch dengan jaminan latensi rendah yang sama. Hal ini cocok dalam konteks di mana analisis cepat, seperti agregasi, diperlukan pada data yang tidak dapat diubah, mungkin dengan penyerapan data secara real-time. Pinot berfungsi sangat baik untuk menanyakan data deret waktu dengan banyak dimensi dan metrik.
Contoh kueri:
SELECT sum (clicks), sum (impressions) FROM AdAnalyticsTable
WHERE
((daysSinceEpoch >= 17849 AND daysSinceEpoch <= 17856 )) AND
accountId IN ( 123456789 )
GROUP BY
daysSinceEpoch TOP 100
Ingin berkontribusi pada Apache/Pinot? ?
Ingin bergabung dengan jajaran pelaku open source ke Apache Pinot? Kemudian lihat Panduan Kontribusi untuk mengetahui bagaimana Anda dapat terlibat dalam kode ini.
Jika Anda memiliki bug atau ide untuk fitur baru, telusuri terbitan yang masih terbuka untuk melihat apa yang sedang kami kerjakan sebelum membuka terbitan baru.
Kami juga menandai beberapa masalah pemula yang dapat diatasi oleh kontributor baru.
# Clone a repo
$ git clone https://github.com/apache/pinot.git
$ cd pinot
# Build Pinot
# -Pbin-dist is required to build the binary distribution
# -Pbuild-shaded-jar is required to build the shaded jar, which is necessary for some features like spark connectors
$ mvn clean install -DskipTests -Pbin-dist -Pbuild-shaded-jar
# Run the Quick Demo
$ cd build/
$ bin/quick-start-batch.sh
Untuk pengaturan pengembangan UI, lihat dokumen ini.
Pembuatan Pinot normal dilakukan menggunakan perintah mvn clean install
.
Namun perintah ini membutuhkan waktu lama untuk dijalankan.
Untuk pembangunan yang lebih cepat disarankan untuk menggunakan mvn verify -Ppinot-fastdev
, yang menonaktifkan beberapa plugin yang sebenarnya tidak diperlukan untuk pengembangan.
Petunjuk lebih rinci dapat ditemukan di bagian Demo Cepat dalam dokumentasi.
Silakan merujuk ke Menjalankan Pinot di Kubernetes dalam dokumentasi proyek kami. Pinot juga menyediakan integrasi Kubernetes dengan mesin kueri interaktif, Trino Presto, dan alat visualisasi data, Apache Superset.
Lihat dokumentasi Pinot untuk penjelasan lengkap tentang fitur Pinot.
Apache Pinot berada di bawah Lisensi Apache, Versi 2.0