Дисклеймер
Cтатья написана с целью дать лишь общее представление о DWH, поэтому тут много упрощений и неточностей. Буду рад если исправите меня в комментариях. Спасибо
DWH (Data Warehouse или по русски Хранилище данных) - это специализированная система для хранения и управления большими объемами данных, которые объединяются из разных источников с целью анализа и построения отчетов
Короче, это место, где все нужные данные из разных мест собираются и потом ими уже удобно пользоваться - строить разные отчетики, строить ИИ на благо всему человечеству и подобные вещи
Грубо говоря, задача при построении хорошего DWH состоит в том, чтобы построить Базу Данных и все необходимое вокруг него, в которой будут лежать правильные данные в удобном виде и в которую можно слать большие-сложные SQL запросы и не бояться, что что-то сломается и всем этим было удобно пользоваться
Для чего вообще DWH?
Понятно, что ДВХ это про данные, но для чего эти данные, где они используются?
Самое частое это, конечно, различные отчеты, чаще всего в виде дашбордов в какой-нибудь Bi штуке (например в superset). Информация на этих дашбордах может быть различной, для разных потребителей:
- Маркетинговые команды могут смотреть на отчеты для анализа эффективности рекламных кампаний и повышения ROI
- Отелы продаж для оценки динамики продаж, анализа поведения клиентов и прогнозирования спроса
- Руководители для принятия каких-то важных стратегических решений
Помимо отчетов на самих дашбордах, часто кому-то необходимо просто получить какую-то небольшую инфу по нашим данным, хватает небольшого sql кода
Также данные из ДВХ нужны и дата сайентистам, которые с их помощью строят всякие модельки и ИИ, который всех нас убьет сделает мир лучше
Роли в команде DWH
У различных DWH могут быть разное кол-во ролей в команде. Где-то будет архитектор, где-то нет. Где-то Data Scientist и BI-разработчики будут включены в команду DWH, а где-то они будут членами других команд. Ниже я описываю, те роли, которые по моему мнению (а мое мнение неправильное) должны быть в команде DWH:
- CDO – это руководитель, который отвечает за управление и стратегическое использование данных в организации. Директор DWH, короче
- Архитектор данных - он разрабатывает общую архитектуру хранилища данных, определяет подходы к интеграции данных, модели данных и схемы и занимается различными другими архитектурными штучками
- Data Engineer - создаёт и поддерживает потоки данных, а также отвечает за их интеграцию и качество
- Бизнес-аналитик - собирает данные о бизнес-требованиях и проецирует их на технические требования
- Администратор баз данных - поддерживает и управляет базами данных
- Project Manager - разрабатывает и внедряет стратегию управления данными
- DevOps, - различные инфраструктурные вещи
Это далеко не все роли, например, если дата инженеров много, то у них может быть свой lead. Также есть еще Data Steward, Data Governance Officer и другие специалисты, но они встречаются реже
Откуда в DWH данные?
Теперь давайте поговорим откуда в DWH данные. Источники данных для DWH могут быть следующие:
- Базы данных - в компании могут быть множество разных баз данных и все данных из них мы можем забирать к себе хранилище
- Веб-сервисы и API - данные например из рекламных кабинетов и других подобных мест
- Файловые источники - не всегда приходится работать с какими-то «крутыми» данными, иногда необходимо просто иксельку загрузить
- CRM и подобные маркетинговые, бухгалтерские штуки
Конечно, у DWH может быть еще куча других источник, тут я привел только самые основные
БД для DWH
База данных для DWH обычно отличается от традиционных операционных баз данных (OLTP)
Объем данных в DWH обычно большой и вряд ли условный PostgresSQL сможет справиться со всей нагрузкой, он для этого не предназначен
А вот несколько БД которые были созданы как раз для этого:
ClickHouse – это колонно-ориентированная система управления базами данных, разработанная для аналитических запросов в режиме реального времени. Она поддерживает распределенную архитектуру, позволяя эффективно обрабатывать большие объемы данных. Основные преимущества ClickHouse включают высокую скорость выполнения запросов, сжатие данных и возможность масштабирования.
Greenplum – это распределенная аналитическая база данных, основанная на PostgreSQL. Она предназначена для обработки больших данных и использует параллельную обработку для ускорения выполнения запросов. Greenplum поддерживает масштабирование за счет добавления новых узлов и предлагает инструменты для интеграции с другими системами данных, что делает ее подходящей для крупных аналитических задач.
ETL для DWH
ETL это вещь благодаря которой те данные попадают в наше хранилище
Делать это можно, например с помощью Airflow
Airflow — это платформа для создания, планирования и мониторинга рабочих процессов. Она широко используется для автоматизации ETL-процессов, обработки данных и управления задачами
Т.е. пишется python скрипт, где мы пишем запрос данных, их обработку и сохранение в БД. И все это ставим на расписание, чтобы данные заливались к нам в базу в автоматическом режими
Одним из главных преимуществ Airflow является уже множество уже готовых операторов для выполнения необходимых действий. Это можно сравнить с использованием библиотек в python
Например есть оператор PostgreSql. Он предназначен для работы с постгрессом. Мы, конечно, сами можем написать необходимый код на python, где конектимся с базе, создаем курсор, выполняем нужный SQL, но намного проще будет использовать уже готовый оператор, в который лишь необходимо передать конекшен к базе и необходимый sql, все остальное он выполнит сам
Но, конечно, как правило SQL играет ключевую роль в построении и управлении хранилищ данных. Именно на этом языке мы пишем, что хотим сделать с нашими данными
Мониторинг DWH
Мониторинг в DWH - это большая тема, но я расскажу с чем сталкиваюсь конкретно я:
- Алертинг в ДАГах Airflow. В наших ДАГах используется функция, которая, в случаи падения ДАГа, посылает сообщения в корпоративный мессенджер и тэгает владельца ДАГа. Это достаточно удобно, ведь нет необходимости самостоятельно проверять отработку ДАГов
- Мониторнг в Grafana. Grafana — система визуализации данных, ориентированная на данные систем ИТ-мониторинга. Тут можно мониторить все, а не только ДАГи, ведь часто поступление данных в DWH может быть происходить без участия airflow (например из kafka сразу в clickhouse)
Если вдруг понравилось
Если вам понравилась статья, то можете подписать на мой телеграм канал https://t.me/datamisha там я о своей работе дата инженера пишу
Комментарии (3)
Ninil
24.10.2024 09:17Эх, средний уровень статей падает и падает... Автор - джуниор проджект менеджер после курса "войти в ИТ"?
Для чего вообще DWH?
Тема не раскрыта. Вообще. Общие слова про необходимость использования данных. Почему для всего именно этого нужно DWH? Все описанное реализуется и без DWH.
БД для DWH
Когда Hadoop успел стать БД?
ETL для DWH
Airflow - это про оркестарцию, а не про ETL. Про ETL в разделе вообще считай ничего нет, кроме как упоминание оператора PostgreSql для Airflow (при этом в разделе выше говорится что "вряд ли условный PostgresSQL сможет справиться со всей нагрузкой")
Мониторинг DWH
Аналогично, писал раздел тот, кто не понимает реальные потребности мониторинга DWH. Алертинг в ДАГах Airflow? Grafana? Автор думает что это покрывает реальные задачи мониторинга DWH?
menz1
24.10.2024 09:17Какие у вас объемы данных через эйрфлоу идут? Слышал, что как у етл там так себе производительность уже на сотнях тысячах записей, что для кхд вообще ни о чем. Чисто оркестратор
Andryushok
Очень актуален и раздел про мониторинг — часто в статьях про DWH этому аспекту уделяется недостаточно внимания, хотя это критичная часть работы с данными.