Преимущества Hybrid Data Lake. Как сочетать Data Warehouse с Data Lake
Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті.
Привет! Я — Илья Кальченко, Data Engineer в NIX, фанат обработки данных больших и маленьких, поклонник Python. В этой статье я расскажу о преимуществах Hybrid data lakes для эффективной и безопасной организации данных.
Для начала предлагаю разобраться с понятиями Data Warehouses и Data Lake, покопаться в юз кейсах и разграничить зоны ответственности.
Data Warehouse
Это корпоративные хранилища обработанных и готовых «к употреблению» данных. DWH характерны несколько свойств классических реляционных баз данных:
- структурированные данные;
- схема определена заранее (schema-on-write);
- SQL (иногда могут быть исключения).
Несмотря на то, что DWH обладают похожими с базами данных характеристиками, таковыми они не являются. Главное различие проявляется, когда необходимо подготовить аналитику на основе большой выборки данных. Data Warehouses хранят операционные и транзакционные данные оптимизированных для агрегации и извлечения больших массивов данных. Именно такие хранилища используют для выполнения подобного рода задач.
Хранилища данных зачастую следуют OLAP принципам — OnLine Analytical Processing. У этого подхода есть свои особенности в отличии от OLTP — OnLine Transaction Processing, а именно:
- скорость выполнения аналитических запросов на больших объемах данных выше;
- запросы сложные с использованием агрегаций;
- данные часто денормализованы;
- данные организованы в виде схем "звезды"(start) или "снежинки«(snowflake).
При использовании хранилищ данных чаще выбирают ETL подход (Extract, Transform, Load) для получения определенной информации. Например, для загрузки данных из продакшен БД, преобразования их в удобный формат и выгрузке в DWH. Это типичный сценарий в проектах Business Intelligence.
Основными источниками для DWH являются операционные БД и транзакционные системы. Самые популярные системы хранилища данных:
- Amazon Redshift;
- Snowflake;
- Google BigQuery;
- IBM DB2;
- Azure Synapse Analytics.
Data Lake
Это хранилища «сырых» данных в масштабах компании. Нет четких правил построения таких хранилищ. Выделим их основные характеристики:
- схема определяется при чтении (schema-on-read);
- наличие «сырых» данных;
- NoSQL;
- структурированные и неструктурированные данные.
В такие хранилища данные в основном попадают в своем первоначальном виде, то есть этап трансформации не обязательный. В этом случае используется подход EL(T). Затем эти данные возьмут Data Scientists для создания моделей, Data Engineers — для построения DWH и Data Analysts — для поиска инсайтов и прогнозирования развития бизнеса.
Типичными решениями для формирования Data Lake являются:
- Amazon S3;
- Google Cloud Storage;
- Apache Hadoop HDFS.
Hybrid Data Lake
Это и есть объединение Data Lake и Data Warehouse в единую систему. Такое решение должно покрывать все потребности компании в хранении данных и быстрого доступа к ним стейкхолдеров. Типичный workflow для Hybrid Data Lake представлен на схеме:
Данные из нескольких источников загружаются, выгружаются в Data Lake и при необходимости меняются. Из этой среды данные берут Data Scientists и Data Analysts. Специалисты используют их для решения аналитических задач и в тасках, связанных с machine learning. Возможен и другой путь: когда данные загружают, преобразуют и выгружают в хранилище для построения Data Marts. На этом этапе данные пригодятся BI Developers при создании дашбордов.
В качестве примера по этой схеме можем использовать такие технологии:
- как источники данных — PostgreSQL, S3, Google Analytics;
- для процессов ELT и ETL — AWS Glue, Google Dataflow, talend, Pantaho;
- как Data Lake — S3, HDFS, GCS;
- в качестве DWH — Snowflake, Amazon Redshift или Google BigQuery.
Рассмотрим пользу Hybrid Data Lake на примере Amazon Web Services.
AWS предоставляет большое количество сервисов, ориентированных на обработку и хранение данных. Как организовать Data Lake на платформе AWS? В качестве источников данных выступают независимые от вендора хранилища, например:
- PostgreSQL;
- MongoDB;
- Events in json format.
Далее нужно эти данные переправить в наш Data Lake. В нашем случае — это S3. Переправлять будем с помощью AWS DMS (Database Migration Service) для БД и AWS Kinesis для потока событий. Как только данные попали в Data Lake, их могут использовать специалисты. Затем с помощью AWS Glue загружаем необходимые данные, обрабатываем и сохраняем их в заранее настроенном Redshift. Теперь информация доступна всей компании в организованном формате и подходит как для аналитики и ML, так и для BI.
Это классический пример. Конечный набор сервисов/инструментов скорее всего определит выбранная вами платформа.
Поскольку объем данных во всех организациях продолжает расти, важно постараться оптимизировать расходы на их хранение. Локальная инфраструктура часто подвергается большой нагрузке. В результате увеличивается ее общая стоимость. Если данные будут хранится в дешевом и быстром на запись Data Lake, а часть данных для аналитики — в производительном и надежном DWH, вы сможете получить лучшее из обоих вариантов и всегда будете готовы к неожиданным рабочим нагрузкам.
Hybrid data lake не является чем-то кардинально новым. Это удачное совмещение двух давно известных и привычных Data-инженерам «сущностей» в одном флаконе. Такое решение позволяет хранить все корпоративные исторические данные в общей системе и по необходимости получать их для выполнения аналитических, ML и любых других задач, связанных с данными.
Лично я убедился на практике, что именно объединяя эти технологии, вы устраняете их недостатки и получаете весомое преимущество в виде поддержки системы одной командой. Выберете ли в своем проекте Hybrid data lake или воспользуетесь Data Warehouses и Data Lake по отдельности зависит от требований ваших конечных пользователей и данных, которые вы собираете. Но все же сочетание этих архитектур может стать хорошим опытом для вас и оптимальный решением для организации всей информации в одной системе крупной компании. Ваша команда сможет поддерживать и улучшать все, что связано с данными. По сути это один из самых грамотных подходов к организации данных.
22 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарів