Definicja #
Apache Hive to system do analizy i odpytywania danych przechowywanych w rozproszonym systemie plików Hadoop (HDFS). Został stworzony przez Facebook i przekazany do Apache Software Foundation. Hive wprowadza warstwę abstrakcji SQL-owej nad MapReduce, umożliwiając pracę z Big Data w znajomym języku zapytań.
Hive używa własnego dialektu SQL o nazwie HiveQL, który kompiluje zapytania do zadań MapReduce, Apache Tez lub Apache Spark wykonywanych w klastrze Hadoop. Dzięki temu analitycy i inżynierowie danych mogą eksplorować petabajty danych bez znajomości Javy ani MapReduce.
- HiveQL — dialekt SQL z obsługą DDL, DML i zapytań analitycznych
- Metastore — katalog metadanych przechowujący schemat tabel i lokalizacje danych w HDFS
- SerDe — mechanizm serializacji/deserializacji obsługujący JSON, CSV, Avro, ORC, Parquet
- Partycjonowanie i bucketing — techniki optymalizacji wydajności zapytań na dużych zbiorach danych
- UDF (User-Defined Functions) — możliwość pisania własnych funkcji w Javie lub Pythonie
Hive doskonale sprawdza się w scenariuszach ETL i raportowania wsadowego, choć dla zapytań interaktywnych w czasie rzeczywistym lepszą alternatywą jest Apache Impala lub Presto/Trino.
Zastosowania #
- Analiza i eksploracja ogromnych zbiorów danych logów aplikacyjnych i webowych przechowywanych w HDFS
- Procesy ETL — transformacja i ładowanie danych z wielu źródeł do hurtowni danych
- Raportowanie wsadowe i generowanie agregatów biznesowych na danych historycznych
- Tworzenie tabel zewnętrznych nad danymi w formatach ORC, Parquet, Avro bez ich kopiowania
- Integracja z narzędziami BI (Tableau, Power BI) przez JDBC/ODBC do analizy Big Data
Ścieżka nauki #
Naukę Hive najlepiej rozpocząć od solidnych podstaw SQL, ponieważ HiveQL jest bardzo zbliżony do standardowego SQL. Następnie warto poznać ekosystem Hadoop — HDFS, YARN i MapReduce — aby rozumieć, jak Hive wykonuje zapytania pod spodem.
Kolejnym krokiem jest instalacja środowiska deweloperskiego: lokalny klaster Hadoop lub platforma zarządzana (Cloudera, Hortonworks, AWS EMR). Ćwicz tworzenie tabel zewnętrznych i wewnętrznych, partycjonowanie, bucketing oraz optymalizację zapytań przez formaty kolumnowe ORC i Parquet.
Warto również poznać integrację Hive z Apache Spark (SparkSQL może zastąpić Hive w wielu scenariuszach) oraz narzędzia orkiestracji jak Apache Oozie i Apache Airflow. Certyfikacje Cloudera (CCA Data Analyst) potwierdzają umiejętności w tym obszarze. Przydatne zasoby to oficjalna dokumentacja Apache Hive, kursy na Coursera (Big Data specialization) i platforma Hortonworks Sandbox do nauki.