Apache Pinot, een open source OLAP-datawarehouse

Apache Pinot

Apache Pinot is een realtime gedistribueerd OLAP-datawarehouse

Apache Pinot is een realtime, gedistribueerde OLAP-opslagoplossing die is ontworpen om schaalbare, realtime analyses met lage latentie te leveren.

Het kan gegevens verwerken vanuit batchbronnen (zoals HDFS, S3, Azure Data Lake en Google Cloud Storage) en streamingbronnen (zoals Kafka). Pinot is ontworpen om horizontaal te schalen, zodat het naar behoefte kan opschalen naar grotere datasets en hogere queryfrequenties.

Over Apache Pinot

Het Pinot-project werd oorspronkelijk ontwikkeld door LinkedIn en in 2015 overgedragen aan de Apache Foundation voor verdere gezamenlijke ontwikkeling. De opslag is ontworpen om te functioneren in een omgeving waar constant nieuwe data wordt toegevoegd en is ontwikkeld om minimale en voorspelbare latentie te bieden, waardoor het geschikt is voor realtime queryverwerking.

Net als de meeste andere datawarehouses en OLAP-datawarehouse-oplossingen ondersteunt Pinot een SQL-achtige querytaal waarmee selectie, aggregatie, filtering, groepering, sortering en andere dataquery's mogelijk zijn.

Apache Pinot biedt horizontale schaalbaarheid en een manier om fouttolerantie en overlevingsvermogen te bereiken bij software- en hardwarefouten. Replicatie- en back-upprocessen zijn direct geïntegreerd in de dataverwerkingscyclus voor data die aan de datastore worden toegevoegd. Enerzijds vereenvoudigt deze aanpak de architectuur aanzienlijk, maar anderzijds introduceert het een vertraging tussen het toevoegen van data en de beschikbaarheid ervan voor query's.

De gegevens worden opgeslagen in tabellen binnen een kolomgeoriënteerde database, en er worden verschillende compressieschema's ondersteund, evenals de mogelijkheid om meerdere waarden in een veld te plaatsen. Pinot biedt een pluggable indexeringssysteem dat gebruik kan maken van diverse indexeringstechnologieën (geordende index, bitmapindex, geïnverteerde index, StarTree-index, Bloom-filter, bereikindex, tekstzoekindex (Lucence/FST), JSON-index, georuimtelijke index).

Van de kenmerken die opvallen bij Apache Pinot:

  • Kolomgericht– Een kolomgeoriënteerde database met verschillende compressieschema's zoals runlengte en vaste bitlengte.
  • Plugbare indexering: Inplugbare indexeringstechnologieën, gesorteerde index, bitmapindex, omgekeerde index.
  • Zoekopdracht optimalisatie- Mogelijkheid om het query-/uitvoeringsplan te optimaliseren op basis van query- en segmentmetagegevens.
  • Inname van stromen en batches: Bijna realtime opname van Hadoop-streams en batchopname.
  • overleg: Op SQL gebaseerde engine voor het uitvoeren van query's.
  • Upsert tijdens inname in realtime: gegevens op schaal en met consistentie bijwerken
  • Meerdere waardevelden: ondersteuning voor velden met meerdere waarden, waardoor u velden kunt opvragen als door komma's gescheiden waarden.
  • Cloud-native op Kubernetes: Helm-diagram biedt een horizontaal schaalbare, fouttolerante geclusterde implementatie die eenvoudig te beheren is met Kubernetes.

Nieuwe versie van Apache Pinot

Het is de moeite waard om te vermelden dat versie 1.0 van Apache Pinot onlangs is uitgebracht . Deze versie vat in feite veel werk samen om de codebase te stabiliseren en rekening te houden met de wensen van de community (meer dan 300 opmerkingen werden in overweging genomen).

Daarnaast is het vermeldenswaard dat de nieuwe Multi-Stage Query Engine zijn volledige potentieel heeft bereikt , waardoor nu ook tabelmerges (JOINs) worden ondersteund. De engine die aanvankelijk werd gebruikt, presteerde uitstekend bij eenvoudige filter- en aggregatiebewerkingen, maar om voorspelbare query-uitvoeringstijden te garanderen, ondersteunde deze geen tabeljoinbewerkingen.

De nieuwe engine bevat tussenstappen voor het verwerken van complexe query's en de SQL-semantiek ervan ligt dicht bij ANSI SQL . Bovendien biedt de nieuwe versie native ondersteuning voor het verwerken van JSON-gegevens, ondersteuning voor de waarde "NULL", integratie met Apache Spark 3.x en verbeterde implementatie van tabellen in de Upsert-modus (toevoeging van segmentcompressie en ondersteuning voor verwijderingsbewerkingen).

Mocht u tot slot meer willen weten , dan is het goed om te weten dat de code van het project in Java is geschreven en onder de Apache-licentie wordt gedistribueerd. Details over de nieuwe versie vindt u via de volgende link.


Voeg dit toe als voorkeursbron in Google.