Apache Pinot ir reāllaika izplatīta OLAP datu noliktava
Apache Pinot ir reāllaika, izkliedēts OLAP krātuves risinājums, kas paredzēts mērogojamu, zema latentuma reāllaika analītikas nodrošināšanai.
Tas var uzņemt datus no partijveida datu avotiem (piemēram, HDFS, S3, Azure Data Lake, Google Cloud Storage), kā arī straumēšanas avotiem (piemēram, Kafka). Pinot ir izstrādāts horizontālai mērogošanai, tāpēc to var mērogot lielākām datu kopām un lielākam vaicājumu skaitam pēc nepieciešamības.
Par Apache Pinot
Pinot projektu sākotnēji izstrādāja LinkedIn , un 2015. gadā tas tika nodots Apache Foundation tālākai kopīgai izstrādei. Krātuve ir paredzēta darbībai vidē, kurā pastāvīgi tiek pievienoti jauni dati, un tā ir izstrādāta, lai nodrošinātu minimālu un paredzamu latentumu, ļaujot to izmantot vaicājumu apstrādei reāllaikā.
Tāpat kā lielākā daļa citu datu noliktavu un OLAP datu noliktavu risinājumu, Pinot atbalsta SQL līdzīgu vaicājumu valodu , kas atbalsta atlasi, apkopošanu, filtrēšanu, grupēšanu, kārtošanu un citus datu vaicājumus.
Apache Pinot nodrošina horizontālu mērogojamību un līdzekļus kļūdu tolerances un izturības sasniegšanai pret programmatūras un aparatūras kļūmēm. Replikācijas un dublēšanas procesi ir tieši integrēti datu apstrādes ciklā datiem, kas tiek pievienoti datu krātuvei. No vienas puses, šī pieeja ievērojami vienkāršo arhitektūru, bet, no otras puses, tā ievieš aizkavi starp datu pievienošanu un to pieejamību vaicājumiem.
Dati tiek glabāti tabulās kolonnās orientētā datubāzē, un tiek atbalstītas dažādas saspiešanas shēmas un iespēja ievietot vairākas vērtības vienā laukā. Pinot nodrošina pievienojamu indeksēšanas sistēmu, kas var izmantot dažādas indeksēšanas tehnoloģijas (sakārtots indekss, bitkartes indekss, apgriezts indekss, StarTree indekss, Bloom filtrs, diapazona indekss, teksta meklēšanas indekss (Lucence/FST), JSON indekss, ģeotelpiskais indekss).
No Apache Pinot iezīmēm:
- Orientēts uz kolonnu- Uz kolonnām orientēta datu bāze ar dažādām saspiešanas shēmām, piemēram, darbības garumu un fiksētu bitu garumu.
- Pieslēdzama indeksācija: pievienojamas indeksēšanas tehnoloģijas, sakārtots indekss, bitkartes indekss, apgrieztais indekss.
- Vaicājumu optimizācija- Spēja optimizēt vaicājuma/izpildes plānu, pamatojoties uz vaicājuma un segmenta metadatiem.
- Plūsmu un partiju uzņemšana: Gandrīz reāllaika pārņemšana Hadoop straumēs un pakešu pārņemšana.
- Konsultācija: Uz SQL balstīta vaicājumu izpildes dzinējs.
- Upsert uzņemšanas laikā reāllaikā: konsekventi atjaunināt datus mērogā
- Vairāki vērtību lauki: atbalsts vairāku vērtību laukiem, ļaujot vaicāt laukus kā komatu atdalītas vērtības.
- Vietējais mākonis pakalpojumā Kubernetes: Stūres diagramma nodrošina horizontāli mērogojamu, pret defektiem izturīgu klasteru izvietošanu, ko ir viegli pārvaldīt, izmantojot Kubernetes.
Jauna Apache Pinot versija
Vērts pieminēt, ka nesen tika izlaista Apache Pinot 1.0 versija , kas būtībā apkopoja lielu darbu, lai stabilizētu koda bāzi un ņemtu vērā kopienas vēlmes (tika izskatīti vairāk nekā 300 komentāri).
Turklāt ir vērts atzīmēt, ka jaunā daudzpakāpju vaicājumu dzinēja (Multi-Stage Query Engine) potenciāls ir sasniedzis pilnu potenciālu , nodrošinot atbalstu tabulu apvienošanai (JOIN). Sākotnēji izmantotais dzinējs lieliski darbojās ar vienkāršām filtrēšanas un apkopošanas darbībām, taču, lai nodrošinātu paredzamu vaicājumu izpildes laiku, tas neatbalstīja tabulu apvienošanas darbības.
Jaunais dzinējs ietver starpposmus sarežģītu vaicājumu apstrādei, un tā SQL semantika ir tuva ANSI SQL . Turklāt jaunā versija piedāvā vietējo atbalstu JSON datu apstrādei, nodrošina atbalstu "NULL" vērtībai, integrējas ar Apache Spark 3.x un uzlabo tabulu ieviešanu Upsert režīmā (pievienojot segmentu saspiešanu un nodrošinot atbalstu dzēšanas darbībām).
Visbeidzot, ja vēlaties uzzināt vairāk , jums jāzina, ka projekta kods ir rakstīts Java valodā un tiek izplatīts saskaņā ar Apache licenci. Sīkāku informāciju par jauno versiju varat atrast šajā saitē.