Apache Presto - Architektura
Architektura Presto jest prawie podobna do klasycznej architektury DBMS MPP (masowo równoległe przetwarzanie). Poniższy diagram ilustruje architekturę Presto.
Powyższy schemat składa się z różnych elementów. Poniższa tabela szczegółowo opisuje każdy element.
S.Nr | Opis podzespołu |
---|---|
1. | Client Klient (Presto CLI) przesyła instrukcje SQL do koordynatora w celu uzyskania wyniku. |
2. | Coordinator Koordynator to główny demon. Koordynator najpierw analizuje zapytania SQL, a następnie analizuje i planuje wykonanie zapytania. Harmonogram wykonuje potok, przypisuje pracę do najbliższego węzła i monitoruje postęp. |
3. | Connector Wtyczki pamięci masowej nazywane są łącznikami. Hive, HBase, MySQL, Cassandra i wiele innych działają jako łączniki; w przeciwnym razie możesz również zaimplementować niestandardowy. Łącznik udostępnia metadane i dane do zapytań. Koordynator używa łącznika, aby uzyskać metadane do tworzenia planu kwerend. |
4. | Worker Koordynator przydziela zadania do węzłów roboczych. Pracownicy pobierają rzeczywiste dane z łącznika. Wreszcie węzeł roboczy dostarcza wynik do klienta. |
Presto - przepływ pracy
Presto to system rozproszony, który działa w klastrze węzłów. Rozproszony silnik zapytań Presto jest zoptymalizowany pod kątem interaktywnej analizy i obsługuje standard ANSI SQL, w tym złożone zapytania, agregacje, sprzężenia i funkcje okien. Architektura Presto jest prosta i rozszerzalna. Klient Presto (CLI) przesyła instrukcje SQL do głównego koordynatora demona.
Harmonogram łączy się za pośrednictwem potoku wykonywania. Planista przydziela pracę do węzłów, które są najbliżej danych i monitoruje postęp. Koordynator przydziela zadanie do wielu węzłów roboczych, a na koniec węzeł roboczy dostarcza wynik z powrotem do klienta. Klient pobiera dane z procesu wyjściowego. Elastyczność to kluczowy projekt. Wtykowe łączniki, takie jak Hive, HBase, MySQL itp., Zapewniają metadane i dane do zapytań. Presto został zaprojektowany z „prostą abstrakcją pamięci masowej”, która ułatwia udostępnianie możliwości zapytań SQL w różnych rodzajach źródeł danych.
Model wykonania
Presto obsługuje niestandardowy mechanizm zapytań i wykonywania z operatorami zaprojektowanymi do obsługi semantyki SQL. Oprócz ulepszonego planowania, całe przetwarzanie odbywa się w pamięci i jest przesyłane potokowo przez sieć między różnymi etapami. Pozwala to uniknąć niepotrzebnych opóźnień we / wy.