Apache Pinot, hurtownia danych OLAP typu open source

Apacz Pinot

Apache Pinot to rozproszona hurtownia danych OLAP działająca w czasie rzeczywistym

Apache Pinot to rozproszone rozwiązanie do przechowywania danych OLAP w czasie rzeczywistym, zaprojektowane w celu dostarczania skalowalnych analiz o niskich opóźnieniach w czasie rzeczywistym.

Może pobierać dane ze źródeł wsadowych (takich jak HDFS, S3, Azure Data Lake, Google Cloud Storage), a także ze źródeł strumieniowych (takich jak Kafka). Pinot został zaprojektowany z myślą o skalowaniu poziomym, dzięki czemu w razie potrzeby może skalować się do większych zestawów danych i wyższych częstotliwości zapytań.

O Apache Pinot

Projekt Pinot został pierwotnie opracowany przez LinkedIn , a w 2015 roku został przeniesiony do Fundacji Apache w celu dalszego wspólnego rozwoju. Pamięć masowa została zaprojektowana do działania w środowisku, w którym stale dodawane są nowe dane, i jest zaprojektowana tak, aby zapewniać minimalne i przewidywalne opóźnienia, umożliwiając przetwarzanie zapytań w czasie rzeczywistym.

Podobnie jak większość innych magazynów danych i rozwiązań OLAP, Pinot obsługuje język zapytań podobny do SQL , który umożliwia selekcję, agregację, filtrowanie, grupowanie, sortowanie i inne zapytania dotyczące danych.

Apache Pinot zapewnia skalowalność poziomą oraz zapewnia odporność na błędy i odporność na awarie oprogramowania i sprzętu. Procesy replikacji i tworzenia kopii zapasowych są zintegrowane bezpośrednio z cyklem przetwarzania danych dodawanych do magazynu danych. Z jednej strony takie podejście znacznie upraszcza architekturę, ale z drugiej wprowadza opóźnienie między dodaniem danych a ich dostępnością do zapytania.

Dane są przechowywane w tabelach w bazie danych zorientowanej kolumnowo, z obsługą różnych schematów kompresji i możliwością umieszczania wielu wartości w jednym polu. Pinot oferuje wtykowy system indeksowania, który może wykorzystywać różne technologie indeksowania (indeks uporządkowany, indeks bitmapowy, indeks odwrócony, indeks StarTree, filtr Blooma, indeks zakresowy, indeks wyszukiwania tekstowego (Lucence/FST), indeks JSON, indeks geoprzestrzenny).

Z cech wyróżniających się z Apache Pinot:

  • Orientacja kolumnowa– Baza danych zorientowana na kolumny z różnymi schematami kompresji, takimi jak długość przebiegu i stała długość bitów.
  • Możliwość podłączenia indeksowania: Wtykowe technologie indeksowania, indeks sortowany, indeks bitmapowy, indeks odwrócony.
  • Optymalizacja zapytań- Możliwość optymalizacji planu zapytań/wykonania w oparciu o metadane zapytań i segmentów.
  • Przyjmowanie strumieni i partii: Pozyskiwanie strumieni Hadoop i przetwarzanie wsadowe w czasie zbliżonym do rzeczywistego.
  • Zapytanie: Silnik wykonywania zapytań oparty na języku SQL.
  • Upsert podczas przyjmowania w czasie rzeczywistym: aktualizuj dane na dużą skalę i z zachowaniem spójności
  • Wiele pól wartości: obsługa pól wielowartościowych, umożliwiająca wysyłanie zapytań do pól jako wartości oddzielonych przecinkami.
  • Natywny w chmurze na Kubernetesie: Wykres Helm zapewnia skalowalne poziomo, odporne na błędy wdrożenie klastrowe, którym można łatwo zarządzać za pomocą Kubernetes.

Nowa wersja Apache Pinot

Warto wspomnieć, że niedawno wydano wersję 1.0 Apache Pinot , która w zasadzie podsumowuje mnóstwo pracy włożonej w stabilizację bazy kodu i uwzględnia sugestie społeczności (wzięto pod uwagę ponad 300 komentarzy).

Warto również zauważyć, że nowy silnik zapytań wieloetapowych osiągnął swój pełny potencjał , umożliwiając obsługę łączenia tabel (JOIN). Początkowo używany silnik doskonale sprawdzał się w przypadku prostych operacji filtrowania i agregacji, ale aby zapewnić przewidywalny czas wykonywania zapytań, nie obsługiwał operacji łączenia tabel.

Nowy silnik zawiera etapy pośrednie do przetwarzania złożonych zapytań, a jego semantyka SQL jest zbliżona do ANSI SQL . Ponadto, nowa wersja oferuje natywne wsparcie dla przetwarzania danych JSON, obsługuje wartość „NULL”, integruje się z Apache Spark 3.x oraz usprawnia implementację tabel w trybie Upsert (dodając kompresję segmentów i zapewniając obsługę operacji usuwania).

Na koniec, jeśli chcesz dowiedzieć się więcej , warto wiedzieć, że kod projektu jest napisany w Javie i rozpowszechniany na licencji Apache. Szczegóły dotyczące nowej wersji znajdziesz pod poniższym linkiem.


Dodaj jako preferowane źródło w Google