Apache Pinot er et realtidsdistribueret OLAP-datavarehus
Apache Pinot er en distribueret OLAP-lagringsløsning i realtid, der er designet til at levere skalerbar realtidsanalyse med lav latenstid.
Den kan indtage data fra batchdatakilder (såsom HDFS, S3, Azure Data Lake, Google Cloud Storage) samt streamingkilder (såsom Kafka). Pinot er designet til at skalere horisontalt, så den kan skalere til større datasæt og højere forespørgselsrater efter behov.
Om Apache Pinot
Pinot-projektet blev oprindeligt udviklet af LinkedIn og blev i 2015 overført til Apache Foundation til videre fælles udvikling. Lagringen er designet til at fungere i et miljø, hvor der konstant tilføjes nye data, og er konstrueret til at give minimal og forudsigelig latenstid, hvilket muliggør brug til forespørgselsbehandling i realtid.
Ligesom de fleste andre data warehouses og OLAP data warehousing-løsninger understøtter Pinot et SQL-lignende forespørgselssprog , der understøtter udvælgelse, aggregering, filtrering, gruppering, sortering og andre dataforespørgsler.
Apache Pinot tilbyder horisontal skalerbarhed og en metode til at opnå fejltolerance og overlevelsesevne mod software- og hardwarefejl. Replikerings- og backupprocesser er integreret direkte i databehandlingscyklussen for data, der tilføjes til datalageret. På den ene side forenkler denne tilgang arkitekturen betydeligt, men på den anden side introducerer den en forsinkelse mellem datatilføjelse og deres tilgængelighed til forespørgsler.
Dataene gemmes i tabeller i en kolonneorienteret database, og forskellige komprimeringsordninger og muligheden for at placere flere værdier i et felt understøttes. Pinot leverer et pluggbart indekseringssystem, der kan udnytte forskellige indekseringsteknologier (ordnet indeks, bitmapindeks, inverteret indeks, StarTree-indeks, Bloom-filter, intervalindeks, tekstsøgningsindeks (Lucence/FST), JSON-indeks, geospatialt indeks).
Af de egenskaber, der skiller sig ud fra Apache Pinot:
- Søjleorienteret– En kolonneorienteret database med forskellige komprimeringsskemaer såsom kørselslængde og fast bitlængde.
- Pluggbar indeksering: Pluggbare indekseringsteknologier, sorteret indeks, bitmapindeks, omvendt indeks.
- Forespørgselsoptimering- Evne til at optimere forespørgsel/udførelsesplan baseret på forespørgsel og segmentmetadata.
- Indtagelse af strømme og batches: Nær realtidsindtagelse af Hadoop-streams og batchindtagelse.
- Konsultation: SQL-baseret forespørgselsudførelsesmotor.
- Upsert under indtagelse i realtid: opdatere data i skala med konsistens
- Flere værdifelter: understøttelse af felter med flere værdier, så du kan forespørge felter som kommaseparerede værdier.
- Cloud native på Kubernetes: Helm-diagram giver en vandret skalerbar, fejltolerant klyngeimplementering, der er nem at administrere med Kubernetes.
Ny version af Apache Pinot
Det er værd at nævne, at version 1.0 af Apache Pinot for nylig blev udgivet , hvilket i bund og grund opsummerede en masse arbejde med at stabilisere kodebasen og tage hensyn til fællesskabets ønsker (mere end 300 kommentarer blev taget i betragtning).
Derudover er det værd at bemærke, at den nye Multi-Stage Query Engine har nået sit fulde potentiale og muliggør understøttelse af tabelsammenlægninger (JOIN'er). Den oprindeligt anvendte motor fungerede fremragende med simple filtrerings- og aggregeringsoperationer, men for at sikre forudsigelige forespørgselsudførelsestider understøttede den ikke tabelsammenlægningsoperationer.
Den nye motor inkluderer mellemliggende stadier til behandling af komplekse forespørgsler, og dens SQL-semantik er tæt på ANSI SQL . Derudover tilbyder den nye version native understøttelse af behandling af JSON-data, understøtter "NULL"-værdien, integrerer med Apache Spark 3.x og forbedrer implementeringen af ​​tabeller i Upsert-tilstand (tilføjer segmentkomprimering og understøtter sletteoperationer).
Endelig, hvis du er interesseret i at lære mere , bør du vide, at projektets kode er skrevet i Java og distribueret under Apache-licensen. Du kan finde detaljer om den nye version på følgende link.