2. Что такое Hive
● Система управления большими наборами данных.
● Используется для создания выборок с помощью SQL-подобного языка (HQL)
● В качестве источников данных можно использовать структурированные и не
структурированные хранилища:
○ SQL: MySQL, PostgreSQL (обычный коннектор, ничего интересного)
○ NoSQL:
■ HBase
была первой, она вдохновила людей на создание Hive
■ MongoDB
MongoDB коннектор для Hadoop реализован в виде Hadoop совместимой файловой системы. Данные из Монги могут
читаться и обрабатываться c помощью Hadoop MapReduce.
○ File Systems: HDFS, S3
3. Hive это уноквазифантазия.
● Абстракция над хранилищами данных
● Унифицирующая работу с данными
● Но на самом деле, адски облегчает работу с M/R. Это основной use-case
4.
5. CREATE EXTERNAL TABLE win_bids_log (
date_field string,
request_id string,
user_ssp_id string,
dsp_id string,
win_price int
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY 't'
LOCATION 'hdfs://categorizer-hadoop-1:
/analytical_engine/logs/';
HQL синтаксис
select dsp_id, count(dsp_id), sum(win_price)
from win_bids_log group by dsp_id;
6. Всякие штучки
Hive умеет работать:
● с текстовыми файлами (можно задать разграничительный символ)
● с сжатыми текстовыми файлами (Gzip, Bzip)
● с массивами, словарями, объединениями (union)
● имеет огромное количество встроенных функций для работы с:
○ коллекциями, датами, строками, JSON-ми
○ математические функции (округление, логарифмы корни, тригонометрия)
○ функции аггрегации (sum, min, max, avg...)
● Если всего перечисленного выше, не хватило, то можно использовать кастомные
функции а так же мэпперы и редьюсеры (python, java)
7. Кто использует и где
● Все кто плотно работает с Mapreduce в целом.
● Все кто плотно работает с HBase
● Все кто использует Amazon EMR
● Там, где не хочется писать M/R на Java
○ Это долго. (юнит-тесты, сборка, деплой, поддержка вендорозависимых
зависимостей)