1 Что такое хранилище данных
Хранилище данных — это предметно-ориентированный, интегрированный, характеризованный во времени и стабильный набор данных для поддержки процесса принятия решений в управлении бизнесом.
-
типичное приложение:
- генерация отчета
- анализ данных
- сбор данных
-
Другие возможности хранилища данных
- Очень большой объем данных (выше ТБ)
- это новое приложение базы данных
- Меньше пользователей
-
Коммерческое хранилище данных
- Типичные представители: db2, teradata, vertica
- Дорого, и объем поддерживаемых данных обычно составляет ТБ или меньше.
-
Хранилище данных в эпоху больших данных
- Очень большой объем данных
- Важны масштабируемость и отказоустойчивость
- соображения стоимости
Если вы не понимаете основных концепций хранилища данных, вы можете обратиться к предыдущему«Посмотрите на хранилище данных».Эта статья.
2 Базовая архитектура хранилища данных Hadoop
-
технические средства
- Обычно Hive используется как хранилище данных
- Вычислительная масштабируемость для проектирования очень больших наборов данных
- Поддержка запросов HQL — простота и низкая стоимость обучения
- Единое управление метаданными
- Обычно Hive используется как хранилище данных
-
Основные характеристики
- Поддержка массивных данных
- Многомерный анализ данных
- Меньше пользователей
- высокая задержка данных
2.1 Хранилища данных на основе Hadoop: первое издание
-
преимущество
- Соответствует основным требованиям хранилища данных
- Способность обрабатывать большие объемы данных
- Отличная масштабируемость системы и отказоустойчивость
-
недостаток
- Низкая производительность и низкая производительность в реальном времени
2.2 Хранилища данных на основе Hadoop: второе издание
-
Улучшать
- Повышение производительности запросов с помощью системы MPP (Presto)
-
преимущество
- Соответствует основным требованиям хранилища данных
- Способность обрабатывать большие объемы данных
- Отличная масштабируемость системы и отказоустойчивость
- лучше в реальном времени
-
недостаток
- Высокая задержка данных (данные от генерации до хранения, до запроса, весь цикл длинный)
2.3 Хранилище данных на основе Hadoop: третья редакция (добавление конвейера в реальном времени)
-
Улучшать
- Уменьшите задержку данных с помощью системы Spark Streaming
-
преимущество
- Соответствует основным требованиям хранилища данных
- Способность обрабатывать большие объемы данных
- Отличная масштабируемость системы и отказоустойчивость
- лучше в реальном времени
- Низкая задержка данных
3 Конкретные примеры хранилища данных
Система отчетности веб-сайта
-
Основная роль
- Формировать отчеты в соответствии с бизнес-требованиями
- Отчеты могут быть созданы в режиме реального времени или по дням
-
шкала данных
- Объем данных: уровень ТБ
- Количество столов: 100+
-
Подписчики
- около десятков
3.1 Сбор данных
3.2 ETL
-
ETL
- Extract, Transform, Load
- Может быть реализовано с помощью MapReduce/Spark/Pig
- Формат хранения: хранение строк и хранение столбцов
-
хранилище строк против хранилища столбцов
Как создать таблицу ORC со сжатием
- Формат журнала после ETL (текстовый формат) следующий:
- Временная таблица (текстовый формат) определяется следующим образом:
CREATE EXTERNAL TABLE tmp_logs (
domain_id INT,
log_time STRING,
log_date STRING,
log_type INT,
uin BIGINT
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION '/user/hivetest/logs';
-
Импортируйте данные во временную таблицу tmp_logs:
LOAD DATA INPATH '/nginx/logs/2016011206' OVERWRITE INTO TABLE tmp_logs;
-
Импортируйте данные из временной таблицы в таблицу формата orc:
CREATE TABLE logs (
domain_id INT,
log_time STRING,
log_date STRING,
log_type INT,
uin BIGINT
)
PARTITION BY(log_time STRING)
STORED AS ORC
tblproperties("orc.compress"="SNAPPY");
INSERT INTO TABLE logs PARTITION(dt='2016-01-12-06') SELECT * FROM tmp_logs;
- алгоритм сжатия
- Запрос
SELECT domain_id, sum(log_type) FROM logs WHERE
log_time>'2016-01-12-06' GROUP BY domain_id;
3.3 Параметризованные отчеты и визуализация
-
Параметрический отчет
- Генерация SQL в соответствии с пользовательскими требованиями к данным
-
инструмент визуализации
- Echarts: echarts.baidu.com/
- D3.js: d3js.org/
- Tableau: коммерческое программное обеспечение для визуализации
4 Summary
-
Преимущества построения хранилища данных на базе Hadoop
- бесплатно с открытым исходным кодом
- Поддержка массивных данных
- Периферийные инструменты созрели
-
Процесс построения хранилища данных на базе Hadoop
- сбор информации
- ETL данных
- Параметрическая отчетность и визуализация