Apache Pinot, atvirojo kodo OLAP duomenų saugykla

Apache Pinot

„Apache Pinot“ yra realiuoju laiku paskirstyta OLAP duomenų saugykla

„Apache Pinot“ yra realaus laiko, paskirstytas OLAP saugojimo sprendimas, skirtas teikti keičiamo dydžio, mažo delsos laiko, realaus laiko analizę.

Jis gali priimti duomenis iš paketinių duomenų šaltinių (pvz., HDFS, S3, „Azure Data Lake“, „Google Cloud Storage“), taip pat iš srautinių šaltinių (pvz., „Kafka“). „Pinot“ yra sukurtas horizontaliam mastelio keitimui, todėl prireikus gali būti pritaikytas didesniems duomenų rinkiniams ir didesniam užklausų dažniui.

Apie Apache Pinot

„Pinot“ projektą iš pradžių sukūrė „LinkedIn“ , o 2015 m. jis buvo perduotas „Apache Foundation“ tolesniam bendram vystymui. Saugykla sukurta veikti aplinkoje, kurioje nuolat pridedami nauji duomenys, ir yra sukurta taip, kad užtikrintų minimalų ir nuspėjamą delsą, leidžiantį ją naudoti užklausoms apdoroti realiuoju laiku.

Kaip ir dauguma kitų duomenų saugyklų bei OLAP duomenų saugyklų sprendimų, „Pinot“ palaiko SQL tipo užklausų kalbą , kuri palaiko atranką, agregavimą, filtravimą, grupavimą, rūšiavimą ir kitas duomenų užklausas.

„Apache Pinot“ užtikrina horizontalų mastelio keitimą ir atsparumą gedimams bei atsparumą programinės ir aparatinės įrangos gedimams. Replikacijos ir atsarginių kopijų kūrimo procesai yra tiesiogiai integruoti į duomenų saugykloje pridedamų duomenų apdorojimo ciklą. Viena vertus, šis metodas gerokai supaprastina architektūrą, tačiau, kita vertus, jis sukuria vėlavimą tarp duomenų pridėjimo ir jų prieinamumo užklausoms.

Duomenys saugomi lentelėse stulpeliais pagrįstoje duomenų bazėje, palaikomos įvairios glaudinimo schemos ir galimybė į vieną lauką įrašyti kelias reikšmes. „Pinot“ teikia įjungiamą indeksavimo sistemą, kuri gali naudoti įvairias indeksavimo technologijas (užsakytas indeksas, rastrinių vaizdų indeksas, apverstas indeksas, „StarTree“ indeksas, „Bloom“ filtras, diapazono indeksas, teksto paieškos indeksas („Lucence“ / „FST“), JSON indeksas, geoprinis indeksas).

Iš „Apache Pinot“ išsiskiriančių savybių:

  • Orientuotas į stulpelį– Į stulpelius orientuota duomenų bazė su įvairiomis glaudinimo schemomis, tokiomis kaip vykdymo ilgis ir fiksuotas bitų ilgis.
  • Prijungiamas indeksavimas: prijungiamos indeksavimo technologijos, rūšiuotas indeksas, taškinės schemos indeksas, apverstas indeksas.
  • Užklausos optimizavimas- Galimybė optimizuoti užklausos/vykdymo planą, remiantis užklausos ir segmento metaduomenimis.
  • Srautų ir partijų nurijimas: Beveik realiuoju laiku perduodami Hadoop srautai ir paketinis perdavimas.
  • Konsultacijos: SQL pagrįstas užklausų vykdymo variklis.
  • Nusileidimas realiuoju laiku: nuosekliai atnaujinti duomenis mastu
  • Keli verčių laukai: kelių reikšmių laukų palaikymas, leidžiantis užklausti laukų kaip kableliais atskirtų reikšmių.
  • „Kubernetes“ vietinis debesis: Vairo diagramoje pateikiamas horizontaliai keičiamas, gedimams atsparus grupinis diegimas, kurį lengva valdyti naudojant „Kubernetes“.

Nauja Apache Pinot versija

Verta paminėti, kad neseniai išleista „Apache Pinot“ 1.0 versija , kurioje iš esmės apibendrintas didelis darbas, skirtas kodo bazei stabilizuoti ir atsižvelgti į bendruomenės pageidavimus (buvo atsižvelgta į daugiau nei 300 komentarų).

Be to, verta paminėti, kad naujasis daugiapakopis užklausų variklis išnaudojo visą savo potencialą , įgalindamas lentelių sujungimo (JOIN) palaikymą. Iš pradžių naudotas variklis puikiai veikė atlikdamas paprastas filtravimo ir agregavimo operacijas, tačiau siekiant užtikrinti nuspėjamą užklausų vykdymo laiką, jis nepalaikė lentelių sujungimo operacijų.

Naujasis variklis apima tarpinius sudėtingų užklausų apdorojimo etapus, o jo SQL semantika artima ANSI SQL . Be to, naujoji versija siūlo natyvų JSON duomenų apdorojimo palaikymą, palaiko „NULL“ reikšmę, integruojasi su „Apache Spark 3.x“ ir patobulina lentelių įgyvendinimą „Upsert“ režimu (pridedamas segmentų glaudinimas ir teikiama parama trynimo operacijoms).

Galiausiai, jei norite sužinoti daugiau , turėtumėte žinoti, kad projekto kodas parašytas „Java“ kalba ir platinamas pagal „Apache“ licenciją. Išsamesnės informacijos apie naująją versiją galite rasti šioje nuorodoje.


Pridėti kaip pageidaujamą šaltinį „Google“ sistemoje