Ang Apache Pinot ay isang real-time na ipinamamahaging OLAP data warehouse
Ang Apache Pinot ay isang real-time, distributed OLAP storage solution na idinisenyo upang maghatid ng scalable, low-latency, real-time analytics.
Maaari itong mag-ingest ng data mula sa mga batch data source (tulad ng HDFS, S3, Azure Data Lake, Google Cloud Storage) pati na rin ang mga streaming source (tulad ng Kafka). Ang Pinot ay dinisenyo para sa pahalang na pag-scale, kaya maaari itong mag-scale sa mas malalaking dataset at mas mataas na query rate kung kinakailangan.
Tungkol sa Apache Pinot
Ang proyektong Pinot ay orihinal na binuo ng LinkedIn at noong 2015 ay inilipat sa Apache Foundation para sa karagdagang magkasanib na pag-unlad. Ang imbakan ay idinisenyo upang gumana sa isang kapaligiran kung saan ang mga bagong data ay patuloy na idinaragdag at dinisenyo upang magbigay ng minimal at mahuhulaang latency, na nagbibigay-daan sa paggamit nito para sa real-time na pagproseso ng query.
Tulad ng karamihan sa iba pang mga data warehouse at mga solusyon sa OLAP data warehousing, sinusuportahan ng Pinot ang isang SQL-like query language na sumusuporta sa pagpili, pagsasama-sama, pagsala, pagpapangkat, pag-uuri, at iba pang mga query sa data.
Nagbibigay ang Apache Pinot ng horizontal scalability at isang paraan upang makamit ang fault tolerance at survivability laban sa mga pagkabigo ng software at hardware. Ang mga proseso ng replication at backup ay direktang isinama sa data processing cycle para sa data na idinagdag sa data store. Sa isang banda, ang pamamaraang ito ay lubos na nagpapadali sa arkitektura, ngunit sa kabilang banda, nagdudulot ito ng pagkaantala sa pagitan ng pagdaragdag ng data at ng availability nito para sa querying.
Ang datos ay nakaimbak sa mga talahanayan sa loob ng isang database na nakatuon sa hanay, at sinusuportahan ang iba't ibang mga scheme ng compression at ang kakayahang maglagay ng maraming halaga sa isang field. Nagbibigay ang Pinot ng isang pluggable indexing system na maaaring gumamit ng iba't ibang teknolohiya sa indexing (ordered index, bitmap index, inverted index, StarTree index, Bloom filter, range index, text search index (Lucence/FST), JSON index, geospatial index).
Sa mga katangiang namumukod-tangi sa Apache Pinot:
- Naka-orient sa Column– Isang column-oriented na database na may iba't ibang compression scheme tulad ng run length at fixed bit length.
- Pluggable na pag-index: Mga pluggable na teknolohiya sa pag-index, Sorted Index, Bitmap Index, Inverted Index.
- Pag-optimize sa query- Kakayahang i-optimize ang query/execution plan batay sa query at segment metadata.
- Paglunok ng mga stream at batch: Malapit sa real-time na pag-ingest ng mga Hadoop stream at batch na pag-ingest.
- Tanong: SQL-based na query execution engine.
- Upsert habang ingestion sa real time: i-update ang data sa sukat nang may pare-pareho
- Mga field ng maramihang halaga: suporta para sa mga field na may maraming halaga, na nagbibigay-daan sa iyong mag-query ng mga field bilang mga halagang pinaghihiwalay ng kuwit.
- Cloud native sa Kubernetes: Nagbibigay ang Helm chart ng isang pahalang na scalable, fault-tolerant clustered deployment na madaling pamahalaan sa Kubernetes.
Bagong bersyon ng Apache Pinot
Mahalagang banggitin na ang bersyon 1.0 ng Apache Pinot ay inilabas kamakailan , na karaniwang nagbubuod ng maraming trabaho upang patatagin ang codebase at isaalang-alang ang mga kagustuhan ng komunidad (mahigit sa 300 komento ang isinaalang-alang).
Bukod pa rito, mahalagang tandaan na naabot na ng bagong Multi-Stage Query Engine ang buong potensyal nito , na nagbibigay-daan sa suporta para sa mga table merge (JOIN). Ang engine na ginamit noong una ay mahusay na gumanap gamit ang mga simpleng operasyon ng pag-filter at pagsasama-sama, ngunit upang matiyak ang mahuhulaan na oras ng pagpapatupad ng query, hindi nito sinusuportahan ang mga operasyon ng table join.
Kasama sa bagong engine ang mga intermediate na yugto para sa pagproseso ng mga kumplikadong query, at ang SQL semantics nito ay malapit sa ANSI SQL . Bukod pa rito, ang bagong bersyon ay nag-aalok ng katutubong suporta para sa pagproseso ng JSON data, nagbibigay ng suporta para sa halagang "NULL", sumasama sa Apache Spark 3.x, at nagpapabuti sa implementasyon ng mga talahanayan sa Upsert mode (pagdaragdag ng segment compression at pagbibigay ng suporta para sa mga operasyon sa pagtanggal).
Panghuli, kung interesado kang matuto nang higit pa , dapat mong malaman na ang code ng proyekto ay nakasulat sa Java at ipinamamahagi sa ilalim ng lisensyang Apache. Makakahanap ka ng mga detalye tungkol sa bagong bersyon sa sumusunod na link.