Корпоративные хранилища и витрины данных были рассмотрены здесь, в материале про ETL-процессы. Сегодня проанализируем еще один важный элемент современной ИТ-инфраструктуры для хранения больших данных (Big Data). Читайте в этой статье, что такое озеро данных (Data Lake), зачем оно нужно, как используется, на каких технологиях основано и чем чревато его некорректное применение.
Что такое озеро данных и кому оно нужно
Одно из отличительных свойств Big Data – это разный формат представления информации: посты в соцсетях, файлы мультимедиа, логи с технологического оборудования, записи из корпоративных баз данных и пр. Чтобы извлечь из всех этих данных полезные для бизнеса сведения, их прежде всего необходимо собрать. Как раз для этого и используется озеро данных – хранилище большого объема неструктурированных данных, собранных или генерированных одной компанией [1].
В отличие от корпоративных хранилищ данных (КХД) или Data Warehouse (DWH), в озере данных хранится неструктурированная, т.н. сырая (raw) информация. Например, видеозаписи с беспилотников и камер наружного наблюдения, транспортная телеметрия, фотографии, логи пользовательского поведения, метрики сайтов, показатели нагрузки информационных систем и пр. Такие данные пока непригодны для типового использования в ежедневной аналитике в рамках BI-систем, но могут использоваться для быстрой отработки новых бизнес-гипотез с помощью ML-алгоритмов. Таким образом, именно Data Scientist – это типичный пользователь озера данных, тогда как с DWH работает гораздо больше сотрудников: аналитики, профильные специалисты и руководители. Однако, это не единственная разница между Data Lake и КХД.
Чтобы лучше понять, что общего между этими элементами корпоративной ИТ-инфраструктуры и чем они отличаются, проанализируем их по следующим критериям [2]:
- полезность содержимого;
- структуры (типы) данных;
- гибкость;
- доступность;
- стоимость.
Критерий |
Data Warehouse |
Data Lake |
Полезность |
Хранятся только полезные данные, актуальные в текущем периоде времени |
Хранятся все данные, в т.ч. и «бесполезные», которые могут пригодиться в будущем или же не понадобиться никогда |
Структура |
Четко структурированные данные одного формата |
Структурированные, полуструктурированные и неструктурированные разнородные данных любых форматов: от мультимедиа файлов до текстовых и бинарных из разных источников |
Гибкость |
Низкая гибкость: структура и типы данных продумываются заранее и не подлежат изменению в процессе эксплуатации |
Высокая гибкость, которая позволяет в процессе эксплуатации добавлять новые типы и структуры данных |
Доступность |
Благодаря четкой структуре данных процесс их извлечения и обработки происходит быстро |
Из-за отсутствия четкой структуры необходима дополнительная обработка данных для их практического использования |
Стоимость |
Высокая стоимость из-за сложности проектирования и модернизации, а также цены оборудования для быстрой и эффективной работы |
Озеро данных намного дешевле DWH, т.к. основная статья затрат – это хранение гигабайт информации |
Таким образом, озера данных дают практическому применению Data Science (DS) в бизнесе следующие преимущества [3]:
- масштабируемость – распределенная файловая система позволяет по мере необходимости подключить новые машины или узлы без изменения структуры хранилища или сложной перенастройки;
- экономичность – Data Lake можно построить на базе свободного ПО Apache Hadoop, без дорогостоящих лицензий и дорогих серверов, используя нужное количество сравнительно бюджетных машин;
- универсальность – большие объемы разнородным данных могут использоваться практически для любой исследовательской DS-задачи – от прогнозирования спроса до выявления пользовательских предпочтений или влияния погоды на качество продукции;
- быстрота запуска – накопленные объемы Data Lake позволяют быстро проверить очередную ML-модель, не тратя время и инженерные ресурсы на сбор информации из разных источников.
На чем стоит озеро данных
Как было отмечено выше, в большинстве случаев озера данных строятся на основе коммерческих дистрибутивов Apache Hadoop (Cloudera/HortonWorks, MapR, Arenadata) или облачных решений от Amazon Web Services, Microsoft Azure, Mail.ru, Яндекса и других Cloud-провайдеров. Существуют также готовые продукты от специализированных вендоров корпоративного сектора Big Data: Teradata, Zaloni, HVR, Podium Data, Snowflake и т.д. [4]
В любом случае, независимо от выбранной базы, организация Data Lake включает следующие компоненты [5]:
- средства загрузки данных в пакетном (batch) или потоковом (streaming) режимах. Например, непрерывный сбор данных может быть организован с помощью Apache Kafka или NiFi, а пакетный – с использованием Apache Airflow.
- файловое хранилище, которое должно быть масштабируемым, отказоустойчивым и достаточно дешевым. Например, HDFS (распределенная файловая система Apache Hadoop) или Amazon S3.
- инструменты каталогизации и поиска, чтобы быстро искать необходимую информацию с помощью метаданных и дополнительных решений, например, Apache Solr или Amazon ElasticSearch.
- средства обработки данных для их трансформации, очистки и других преобразований с целью последующего использования. Например, Apache Spark – Big Data фреймворк для работы с данными в режиме near real time, включая ML-моделирование (Spark MLLib).
- компоненты обеспечения информационной безопасности – организация защищенного периметра сети (Apache Knox Gateway), резервного копирования, репликации и восстановления, шифрование SSL, безопасные протоколы (Kerberos), политики ограничения доступа с помощью Apache Ranger и Atlas.
Хотя Data Lake позиционируется, в первую очередь, как хранилище сырой информации, оно может содержать также и обработанные данные. При корректном использовании Data Lake предоставляет пользователям возможность быстро запрашивать меньшие, более актуальные и гибкие наборы данных по сравнению с DWH при аналогичном времени выполнения запросов. Это возможно благодаря вычисляемой на лету схеме данных (ad hoc), которая не предопределяется заранее, а формируется в момент доступа. Таким образом, на практике озеро данных может использоваться вместе с КХД, обеспечивая бизнес-инфраструктуру на основе информации (data-driven) [6].
Как не превратить Data Lake в информационное болото
При всех своих достоинствах, озера данных чреваты следующими рисками [7]:
- низкое качество данных ввиду их отсутствия контроля при их загрузке, а также простоты этого процесса и дешевизны хранения информации;
- сложность определения ценности данных. С одной стороны, философия Big Data предполагает важность любой информации. Но, с другой стороны, если бизнесу быстро нужны какие-то данные, об этом, как правило, известно заранее. А потому такую информацию логично сразу загружать в DWH или витрину BI-системы.
- превращение озера данных в болото, что является последствием двух предыдущих рисков.
Чтобы озеро данных не превратилось в болото, необходимо отладить процесс управления данными — data governance, определяя качество информации еще до загрузки в data lake. Это можно сделать следующими способами [2]:
- отсекать источники с заведомо недостоверными данными; настроить ролевые политики прав доступа на загрузку информации для определенных категорий сотрудников;
- проверять некоторые параметры файлов, например, размер изображений или видео/аудиозаписей.
В дополнение к этим рекомендациям, компания Teradata, один из ведущих поставщиков Big Data решений для аналитики, приводит еще 5 советов по эффективному развертыванию озер данных [7]:
- интегрируйте озеро данных с другими элементами корпоративной ИТ-инфраструктуры: DWH, базами данных информационных систем, облачными сервисами, устройствами интернета вещей и прочими источниками потенциально нужных данных. При этом помните о балансе между емкостью хранилища, его быстротой и разумной стоимостью этого решения.
- не засоряйте Data Lake – вместо одного глобального хранилища имеет смысл организовывать несколько пространств и сразу размещать данные по категориям. Эта мера также улучшит функциональное свойство, важнейшее с точки зрения пользователя – скорость считывания информации.
- поддерживайте доверие к данным, фиксируя их происхождение (data provenance) и проверяя качества метаданных.
- дайте Data Scientist’ам и аналитикам инструменты для исследования, профилирования и получения ответов на свои запросы из озера данных, организовав их в кроссфункциональные команды с data инженерами, разработчиками и бизнес-экспертами.
- обеспечьте безопасность, предупреждая возможные утечки и потери данных с помощью политик управления доступом, средств организации защищенного периметра, резервного копирования, репликации и восстановления.
Интересна также корреляция чистоты озера данных со степенью управленческой зрелости предприятия по модели CMMI. В частности, когда ведется непрерывный мониторинг отлаженных бизнес-процессов, современные Big Data инструменты с интегрированными средствами машинного обучения позволяют обеспечить самоорганизацию Data Lake, выполняя непрерывный сбор, агрегацию и мета-разметку информации с помощью так называемых конвейеров данных (data pipeline) [8].
Уровень зрелости управления |
Состояние и характер данных |
Состояние Data Lake |
1. Начальный |
Данные дублируются или частично отсутствуют, представлены в разных форматах и системах, не связаны между собой, велика доля ручной обработки данных |
Локальное хранилище данных без определенного порядка автоматизированной обработки |
2. Управляемый |
Информация достаточно успешно обрабатывается автоматически в пределах одного подразделения, но не интегрирована с другими корпоративными процессами и структурами (отделами, филиалами и пр.) |
Лужа или болото данных |
3. Определенный |
Обмен данными между различными процессами, системами и структурами предприятия частично автоматизирован, имеется единый каталог корпоративных данных |
Озеро данных |
4. Управляемый на основе количественных данных |
Синхронизация данных между различными процессами, системами и структурами предприятия автоматизирована не полностью, часть процедур запускается по требованию или вручную |
Управляемое озеро данных
|
5. Оптимизируемый |
Процедуры автоматизированного появления, обновления, обмена и синхронизации данных между различными процессами, системами и структурами предприятия отлажены и успешно работают |
Самоорганизующееся озеро данных |
Вместо заключения
По прогнозу Markets&Markets, к 2021 году рынок озер данных вырастет до $8,81 млрд с годовым темпом роста 28,3% [4]. Этот тренд подтверждает исследование «Angling for Insights in Today's Data Lake», показывая почти 10% рост выручки у компании, использующих эту технологию [2]. Однако, при универсальности и высокой потенциальной пользе Data Lake, организация чистого озера данных, которое принесет реальную выгоду бизнесу – это достаточно сложная задача. Как и в любом DS-проекте, прежде всего следует оценить его будущие перспективы с учетом затрат на реализацию. Сегодня организация озера данных оправдана в компаниях, которые можно отнести к data-driven организациям: телекомы, крупные ритейлеры, особенно интернет-маркеты, банки и производственные холдинги с распределенной структурой филиалов. Обычно в таких организациях процессы находятся на 4-5 уровне CMMI, а ИТ-инфраструктура, включая Big Data, представляет собой сложный комплекс проприетарных и самописных решений по непрерывной поставке различных данных. Поэтому Data Lake отлично впишется в уже существующий ИТ-ландшафт, дополняя и обогащая его новыми данными.
Источники
- https://www.bigdataschool.ru/wiki/data-lake
- https://mcs.mail.ru/blog/chto-takoe-ozera-dannyh-i-zachem-tam-hranyat-big-data
- https://jet.su/datalake/
- https://aboutdata.ru/2017/06/01/data-lakes/
- https://habr.com/ru/post/485180/
- https://www.sas.com/ru_ru/insights/articles/data-management/data-lake-and-data-warehouse-know-the-difference.html
- https://www.cnews.ru/articles/kak_razvernut_ozero_dannyh_5_sovetov
- https://resources.zaloni.com/i/1078782-data-lake-maturity-model/3