🎯 Definicja
Apache Hive to system hurtowni danych zbudowany na szczycie Hadoopa, oferujący interfejs SQL (HiveQL) do odpytywania danych składowanych w HDFS (Distributed File System).
🔑 Kluczowe punkty
- Hive Metastore (HMS): Najważniejszy komponent, który “wie”, gdzie leżą pliki i jaki mają schemat. Stał się de-facto standardem katalogu danych dla całego ekosystemu (używany przez Sparka, Presto, Trino).
- SQL-like: Pozwala analitykom znającym SQL pracować z Big Data bez pisania kodu Java/Scala (MapReduce).
- Batch oriented: Tradycyjnie wolny (minuty/godziny), choć nowsze wersje (LLAP) są szybsze.
📚 Szczegółowe wyjaśnienie
Hive powstał w Facebooku, aby ułatwić życie analitykom. Zamiast pisać pętle w Javie, piszesz SELECT * FROM sales.
Hive zamienia to zapytanie na serię zadań (MapReduce lub Tez) i wykonuje na klastrze.
Dziś Hive jako silnik wykonawczy traci na znaczeniu (na rzecz Sparka/Trino), ale Hive Metastore (baza metadanych) jest sercem niemal każdego Data Lake’a.
💡 Przykład zastosowania
Firma telekomunikacyjna trzyma logi połączeń (CDR) z 10 lat w plikach Parquet na HDFS/S3. Aby znaleźć “wszystkie połączenia do Chin w 2020 roku”, analityk wpisuje zapytanie w Hive. Hive sprawdza w Metastore, które pliki zawierają dane z 2020 roku (Partition Pruning), a następnie skanuje tylko te pliki.
📌 Źródła
👽 Brudnopis
- “Hive is slow” - stereotyp, ale prawdziwy dla starych wersji.
- Partitioning & Bucketing - kluczowe dla wydajności.
- External Tables vs Managed Tables.