Apache Pinot on reaaliaikainen hajautettu OLAP-tietovarasto
Apache Pinot on reaaliaikainen, hajautettu OLAP-tallennusratkaisu, joka on suunniteltu tarjoamaan skaalautuvaa, pieniviiveistä ja reaaliaikaista analytiikkaa.
Se voi ladata dataa eräajoista (kuten HDFS, S3, Azure Data Lake, Google Cloud Storage) sekä suoratoistolähteistä (kuten Kafka). Pinot on suunniteltu skaalautumaan horisontaalisesti, joten se voi skaalautua suurempiin datajoukkoihin ja korkeampiin kyselynopeuksiin tarpeen mukaan.
Tietoja Apache Pinotista
Pinot-projektin kehitti alun perin LinkedIn , ja vuonna 2015 se siirrettiin Apache Foundationille jatkokehitystä varten. Tallennustila on suunniteltu toimimaan ympäristössä, jossa uutta dataa lisätään jatkuvasti, ja se on suunniteltu tarjoamaan minimaalisen ja ennustettavan viiveen, mikä mahdollistaa sen käytön reaaliaikaisessa kyselyiden käsittelyssä.
Kuten useimmat muutkin tietovarastot ja OLAP-tietovarastointiratkaisut, Pinot tukee SQL:n kaltaista kyselykieltä , joka tukee valintaa, yhdistämistä, suodatusta, ryhmittelyä, lajittelua ja muita datakyselyitä.
Apache Pinot tarjoaa horisontaalista skaalautuvuutta ja keinon saavuttaa vikasietoisuus ja selviytymiskyky ohjelmisto- ja laitteistovikoja vastaan. Replikointi- ja varmuuskopiointiprosessit on integroitu suoraan datankäsittelysykliin tietovarastoon lisättävän datan osalta. Toisaalta tämä lähestymistapa yksinkertaistaa arkkitehtuuria merkittävästi, mutta toisaalta se aiheuttaa viiveen datan lisäämisen ja sen saatavuuden kyselyihin välille.
Tiedot tallennetaan taulukoihin sarakepohjaisessa tietokannassa, ja tuetaan erilaisia ​​pakkausmenetelmiä ja mahdollisuutta sijoittaa useita arvoja samaan kenttään. Pinot tarjoaa kytkettävän indeksointijärjestelmän, joka voi hyödyntää erilaisia ​​indeksointitekniikoita (järjestetty indeksi, bittikarttaindeksi, käänteinen indeksi, StarTree-indeksi, Bloom-suodatin, alueindeksi, tekstihakuindeksi (Lucence/FST), JSON-indeksi, geospatiaalinen indeksi).
Apache Pinotista erottuvista ominaisuuksista:
- Sarakesuuntainen– Sarakekohtainen tietokanta, jossa on erilaisia ​​pakkausmenetelmiä, kuten ajon pituus ja kiinteä bittipituus.
- Kytkettävä indeksointi: Kytkettävät indeksointitekniikat, lajiteltu indeksi, bittikarttaindeksi, käänteinen indeksi.
- Kyselyn optimointi- Kyky optimoida kysely/suoritussuunnitelma kyselyn ja segmentin metatietojen perusteella.
- Virtojen ja erien nauttiminen: Lähes reaaliaikainen Hadoop-striimien käsittely ja eränotto.
- kuuleminen: SQL-pohjainen kyselyn suoritusmoottori.
- Upsert nielemisen aikana reaaliajassa: päivittää tiedot mittakaavassa johdonmukaisesti
- Useita arvokenttiä: moniarvoisten kenttien tuki, jonka avulla voit kysyä kenttiä pilkuilla eroteltuina arvoina.
- Kubernetesin natiivi pilvi: Ruorikaavio tarjoaa vaakasuunnassa skaalautuvan, vikasietoisen klusteroidun käyttöönoton, jota on helppo hallita Kubernetesin avulla.
Uusi versio Apache Pinotista
On syytä mainita, että Apache Pinotin versio 1.0 julkaistiin hiljattain , ja se kiteytti pohjimmiltaan paljon työtä koodikannan vakauttamiseksi ja yhteisön toiveiden huomioon ottamiseksi (yli 300 kommenttia otettiin huomioon).
Lisäksi on syytä huomata, että uusi monivaiheinen kyselymoottori on saavuttanut täyden potentiaalinsa ja mahdollistaa taulukoiden yhdistämisen (JOIN) tuen. Alun perin käytetty moottori suoriutui erinomaisesti yksinkertaisilla suodatus- ja yhdistämistoiminnoilla, mutta ennustettavien kyselyjen suoritusaikojen varmistamiseksi se ei tukenut taulukoiden liittämistoimintoja.
Uusi moottori sisältää välivaiheita monimutkaisten kyselyiden käsittelyyn, ja sen SQL-semantiikka on lähellä ANSI SQL:ää . Lisäksi uusi versio tarjoaa natiivin tuen JSON-datan käsittelyyn, tukee "NULL"-arvoa, integroituu Apache Spark 3.x:n kanssa ja parantaa taulukoiden toteutusta Upsert-tilassa (lisäämällä segmenttien pakkauksen ja tarjoamalla tuen poistotoiminnoille).
Lopuksi, jos olet kiinnostunut oppimaan lisää , sinun tulisi tietää, että projektin koodi on kirjoitettu Javalla ja jaettu Apache-lisenssillä. Löydät lisätietoja uudesta versiosta seuraavasta linkistä.