Apache Pinot er et sanntidsdistribuert OLAP-datavarehus
Apache Pinot er en distribuert OLAP-lagringsløsning i sanntid, utviklet for å levere skalerbar analyse med lav latens i sanntid.
Den kan innhente data fra batchdatakilder (som HDFS, S3, Azure Data Lake, Google Cloud Storage) samt strømmekilder (som Kafka). Pinot er designet for å skaleres horisontalt, slik at den kan skaleres til større datasett og høyere spørringsrater etter behov.
Om Apache Pinot
Pinot-prosjektet ble opprinnelig utviklet av LinkedIn og ble i 2015 overført til Apache Foundation for videre felles utvikling. Lagringen er designet for å operere i et miljø der nye data stadig legges til, og er konstruert for å gi minimal og forutsigbar ventetid, noe som muliggjør bruk for sanntids spørrebehandling.
Som de fleste andre datavarehus og OLAP-datavarehusløsninger støtter Pinot et SQL-lignende spørrespråk som støtter valg, aggregering, filtrering, gruppering, sortering og andre dataspørringer.
Apache Pinot tilbyr horisontal skalerbarhet og en metode for å oppnå feiltoleranse og overlevelsesevne mot programvare- og maskinvarefeil. Replikerings- og sikkerhetskopieringsprosesser er integrert direkte i databehandlingssyklusen for data som legges til i datalageret. På den ene siden forenkler denne tilnærmingen arkitekturen betydelig, men på den andre siden introduserer den en forsinkelse mellom datatilføyelse og tilgjengelighet for spørring.
Dataene lagres i tabeller i en kolonneorientert database, og ulike komprimeringsskjemaer og muligheten til å plassere flere verdier i et felt støttes. Pinot tilbyr et pluggbart indekseringssystem som kan bruke ulike indekseringsteknologier (ordnet indeks, bitmap-indeks, invertert indeks, StarTree-indeks, Bloom-filter, områdeindeks, tekstsøkindeks (Lucence/FST), JSON-indeks, geospatial indeks).
Av egenskapene som skiller seg ut fra Apache Pinot:
- Kolonneorientert– En kolonneorientert database med ulike komprimeringsskjemaer som kjørelengde og fast bitlengde.
- Pluggbar indeksering: Pluggbare indekseringsteknologier, sortert indeks, bitmapindeks, invertert indeks.
- Spørringsoptimalisering- Evne til å optimalisere spørringen/utførelsesplanen basert på spørrings- og segmentmetadata.
- Inntak av bekker og batcher: Nær sanntidsinntak av Hadoop-strømmer og batchinntak.
- Konsultasjon: SQL-basert søkekjøringsmotor.
- Upsert under inntak i sanntid: oppdater data i stor skala med konsistens
- Flere verdifelt: støtte for felt med flere verdier, slik at du kan søke etter felt som kommadelte verdier.
- Cloud native på Kubernetes: Rordiagram gir en horisontalt skalerbar, feiltolerant gruppert distribusjon som er enkel å administrere med Kubernetes.
Ny versjon av Apache Pinot
Det er verdt å nevne at versjon 1.0 av Apache Pinot nylig ble utgitt , som i bunn og grunn oppsummerte mye arbeid med å stabilisere kodebasen og ta hensyn til fellesskapets ønsker (mer enn 300 kommentarer ble vurdert).
I tillegg er det verdt å merke seg at den nye Multi-Stage Query Engine har nådd sitt fulle potensial , og muliggjør støtte for tabellsammenslåinger (JOIN-er). Motoren som opprinnelig ble brukt fungerte utmerket med enkle filtrerings- og aggregeringsoperasjoner, men for å sikre forutsigbare spørreutførelsestider støttet den ikke tabellsammenslåingsoperasjoner.
Den nye motoren inkluderer mellomliggende stadier for behandling av komplekse spørringer, og SQL-semantikken er nær ANSI SQL . Videre tilbyr den nye versjonen innebygd støtte for behandling av JSON-data, støtte for "NULL"-verdien, integreres med Apache Spark 3.x og forbedrer implementeringen av tabeller i Upsert-modus (legger til segmentkomprimering og gir støtte for sletteoperasjoner).
Til slutt, hvis du er interessert i å lære mer , bør du vite at prosjektets kode er skrevet i Java og distribuert under Apache-lisensen. Du finner detaljer om den nye versjonen på følgende lenke.