Choosing the right Data Warehouse SQL Engine: Apache Hive LLAP vs Apache Impala

Aren’t two superheroes better than one?

Some of the most powerful results come from combining complementary superpowers, and the „dynamic duo” of Apache Hive LLAP and Apache Impala, both included in Cloudera Data Warehouse, is further evidence of this. Zarówno Impala jak i Hive mogą działać w niespotykanej dotąd, ogromnej skali, z wieloma petabajtami danych. Oba są w 100% Open Source, dzięki czemu można uniknąć uzależnienia od dostawcy podczas korzystania z ulubionych narzędzi BI i korzystać z innowacji napędzanych przez społeczność.

Zarówno Impala, jak i Hive LLAP brzmią tak, jakby świetnie sprawdzały się w przypadku mojej hurtowni danych, więc dlaczego tak naprawdę muszę wybrać pomiędzy nimi? Odpowiedź jest prosta, każdy z nich ma swoje unikalne specjalizacje, a w zależności od rodzaju analityki, którą chcesz wykonać, może się okazać, że jeden z nich jest lepiej dostosowany niż drugi. Jest jednak pewien sekret, który zachowuję do końca bloga, który sprawia, że decyzja jest jeszcze łatwiejsza dla użytkownika: tak łatwa w rzeczywistości, że nie musisz nawet decydować sam.

Zanim przejdę do różnic między tymi silnikami SQL, ważne jest, aby zauważyć, że zarówno Impala, jak i Hive LLAP współdzielą te same dane i metadane (za pośrednictwem Hive Metastore), więc nie tylko można przełączyć się z jednego do drugiego, jeśli zmienisz zdanie, ale możesz nawet uruchomić różne obciążenia robocze przy użyciu różnych wyborów silnika na tych samych danych, w tym samym czasie. Prawdziwa sytuacja „best of both worlds”.

Więc, dlaczego wybrać? Cóż, ogólnie rzecz biorąc, Impala działa najlepiej, gdy wchodzisz w interakcję z data mart, który jest zwykle dużym zbiorem danych ze schematem, który jest ograniczony w zakresie. Tymczasem Hive LLAP jest lepszym wyborem do radzenia sobie z przypadkami użycia w szerszym zakresie hurtowni danych przedsiębiorstwa. Takie przypadki użycia często dotyczą wielu działów i różnych aplikacji, co skutkuje szerszą gamą wzorców zapytań. Widzimy również, że Impala jest dobrym wyborem dla interaktywnych, doraźnych zapytań, zwłaszcza jeśli mamy setki lub tysiące użytkowników pracujących samodzielnie.

Można też mieszać i dopasowywać, używając Impali do niektórych zapytań i niektórych tabel, a Hive LLAP do innych zapytań i innych tabel.

Impala została zaprojektowana z myślą o szybkości.

Impala posiada również bardzo wydajne ramy wykonywania w czasie rzeczywistym, wykorzystujące generowanie kodu, komunikację między procesami, masywny paralelizm i buforowanie metadanych. Z tego powodu Impala doskonale sprawdza się również podczas pracy z zapytaniami ad hoc, na przykład podczas eksploracji poprzez iteracyjne drążenie danych. Będziesz chciał zmieniać swoje zapytania w kółko, w każdej chwili, i mieć bardzo szybkie czasy odpowiedzi, aby nie czekać wiecznie na każdą iterację.

Hive LLAP został zaprojektowany dla wyrafinowania.

Hive LLAP ma wiele wyrafinowanych możliwości, które mogą utrudnić programistom rozpoczęcie i efektywne wykorzystanie. W Hive LLAP, czasami zapytanie zajmuje więcej czasu, aby przejść przez planowanie i ramp-up do wykonania. Jednakże, Hive został zaprojektowany tak, aby był bardzo odporny na błędy. Jeśli fragment długo trwającego zapytania nie powiedzie się, Hive przypisze go ponownie i spróbuje ponownie. Hive buforuje pliki danych, jak również wyniki zapytań, za pomocą wyrafinowanych algorytmów, co oznacza, że częściej wymagane dane pozostają zbuforowane przez LLAP. Hive LLAP wspiera federację zapytań, pozwalając na uruchamianie zapytań w wielu komponentach i bazach danych. Dlatego Hive LLAP rekompensuje „powolny start” w przypadku EDW, ponieważ jest znacznie bardziej solidny i ma większą wydajność w dłuższej perspektywie.

Z powodu tego wyrafinowania i elastyczności, Hive LLAP jest lepiej dostosowany do hurtowni danych dla przedsiębiorstw, lub EDW, przypadków użycia. EDW obsługuje raporty i pulpity Business Intelligence, zależne data marts, inne aplikacje korporacyjne, systemy zewnętrzne i wiele innych. Te obciążenia często biorą pod uwagę wiele wymiarów, a w rezultacie EDW często muszą przetwarzać bardziej złożone wymagania SQL niż data marts, z większą potrzebą złożonych typów danych, bardziej zaplanowanych zapytań i orkiestracji zapytań, aby wypełnić data marts lub wygenerować regularne ekstrakty danych.

Zdolność Hive’a do bardziej solidnej obsługi dłużej działających, bardziej złożonych zapytań, na masywnych zbiorach danych, czyni go często lepszym wyborem dla tego typu aplikacji. W przypadku szybkich zapytań ad-hoc, czas rozruchu Hive LLAP może spowolnić go w porównaniu z Impalą, jednak w przypadku dłużej działających zapytań, ten koszt rozruchu jest stosunkowo nieistotną częścią całkowitego czasu działania. Hive LLAP staje się lepszym wyborem dla EDW również ze względu na jego odporność na błędy (kto chce, aby zapytanie nie powiodło się, jeśli długo czeka się na wynik?) i lepszą wydajność w bardziej złożonych zapytaniach.

Używanie Impali i Hive LLAP

Impala Hive LLAP
Data mart Enterprise data warehouse
  • Dobry wybór dla interaktywnych i doraźnych analiz.hoc analizy, szczególnie przy wysokiej współbieżności samoobsługi
  • Dobry wybór dla długotrwałych zapytań wymagających ciężkich transformacji lub wielokrotnego łączenia
  • Dobry wybór dla interaktywnych i doraźnych analizhoc z wykorzystaniem funkcji niedostępnych w Impali
  • Dobry wybór dla narzędzi Business Intelligence, które umożliwiają użytkownikom szybką zmianę zapytań
  • Dobry wybór dla pulpitów nawigacyjnych, które są wstępniezdefiniowane i nie są dostosowywane przez przeglądarkę
  • Usługuje Parquet jako preferowany format pliku
  • Usługuje ORC jako preferowany format plików
  • Radzi sobie lepiej z JSON niż Impala

W miarę łączenia się ogromnych zbiorów danych ze wzrostem przypadków użycia, wybór odpowiedniego silnika SQL Hurtowni Danych, aby uzyskać terminowe wyniki, robi różnicę.

Dołącz do nas w wyścigu po wyniki! Hurtownia danych – Impala vs. Hive LLAP, żywa debata ekspertów, 20 października 2020 r., godz. 10:00 czasu pacyficznego USA, godz. 13:00 czasu wschodniego USA, uzupełniona o przykłady przypadków użycia u klientów, a następnie pytania na żywo&a.

David Dichmann
David Dichmann

Director Product Marketing

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.