Рубрикатор |
Статьи | ИКС № 2 2019 |
Андрей ПИВОВАРОВ  | 23 мая 2019 |
Что кроется в глубинах озер данных
Хранение данных в озере позволяет аналитикам быстро получить их для работы и иметь под рукой источник исходной информации для расширенного анализа.
Что такое озеро данных (Data Lake)? Это место для хранения структурированных и неструктурированных данных, а также способ организации больших объемов разнообразных данных, получаемых из разных источников.Учитывая широкий интерес к анализу и обнаружению данных, особенно в сфере бизнеса и технологий, консолидация данных или большей их части в одном месте может оказаться весьма полезной. Озеро данных – при правильном выборе платформы – заметно упрощает решение этой задачи. Оно позволяет работать с разнообразными типами данных, такими как неструктурированные, полуструктированные и сложноструктурированные.
Чем озеро данных отличается от хранилища?
Одно из назначений озера данных состоит в том, чтобы данные оказались там как можно быстрее. Это особенно актуально для компаний, работающих с оперативной отчетностью, аналитикой и бизнес-мониторингом, так как есть возможность быстро получить самые свежие данные.
Определенная структура данных не всегда подходит для целей анализа. А операции их преобразования (Extract, Transform, Load, ETL) к более удобному для анализа виду могут занимать много времени – например, в случае масштабных банковских систем задержка нередко составляет сутки и более. Между тем некоторые события, такие как мошеннические транзакции, требуют быстрой реакции. В этом случае озеро данных используется в качестве оперативного склада данных (Operational Data Store, ODS). Платформой для ODS может служить в том числе и база данных. Озеро данных (и ODS в общем случае) позволяет аналитикам быстро получить данные для работы, не дожидаясь, пока они будут подготовлены для размещения в хранилище данных. Анализ таких данных более трудоемок, но зато они оказываются доступны через несколько минут или секунд.
- интеллектуальный анализ текста;
- добыча данных;
- статистический анализ;
- все, что связано с кластеризацией;
- анализ графов.
Для многих из перечисленных видов аналитики нужны подробные исходные данные – этим аналитика существенно отличается от задач подготовки отчетов. Вот почему озеро данных обычно является сокровищницей данных для аналитики, по крайней мере, для ее продвинутых разновидностей.
Платформы для озер данных
Озеро данных может использоваться разными способами и базироваться на разных платформах. Hadoop – самая распространенная из них, но не единственная.
Платформу Hadoop отличает линейная масштабируемость при низкой стоимости расширения по сравнению, скажем, с реляционной базой данных. Но Hadoop – это не просто дешевое хранилище, но и мощная платформа обработки данных. Она может быть очень полезна, когда требуется поддержка аналитики.
Все сильнее проявляется тенденция перехода к облачным системам, особенно к облачным хранилищам. Огромным преимуществом облаков является их эластичная масштабируемость: они позволяют выделять серверные и другие ресурсы по мере увеличения нагрузки. А по сравнению со многими локальными, развертываемыми у клиента системами облако часто бывает относительно недорогим.
Большинство облачных хранилищ представляют собой объектные хранилища. Подход к облаку как к объектному хранилищу имеет немало преимуществ. Оно способно хранить практически неограниченные объемы данных и обеспечивает даже более дешевое хранение данных, нежели Hadoop. Такие инструменты, как Spark, позволяют эффективно анализировать размещаемые в облаке данные.
Возможна, конечно, и гибридная комбинация платформ для озера данных. По аналогии с так называемым логическим хранилищем данных здесь существует нечто похожее – логическое озеро данных, в котором данные физически распределены по нескольким платформам. Но при этом не исключены некоторые проблемы, например при выполнении глубоких аналитических запросов.
Hadoop в контексте хранилищ данных
На протяжении нескольких десятилетий хранилища данных базировались на реляционных базах данных. В современных архитектурах Hadoop добавляется к хранилищам данных с целью улучшения их масштабируемости, а также удешевления хранения, и комбинируется с реляционными базами данных.
Изначально Hadoop использовался интернет-компаниями, будучи разработан для хранения очень больших и многочисленных файлов логов – журналов, поступающих от веб-серверов. Когда Hadoop стали применять за пределами интернет-компаний, у некоторых его приверженцев сложилось мнение, что он заменит собой традиционные реляционные СУБД в качестве платформы для хранилищ данных. Но этого не произошло в силу множества причин, включая проблемы с безопасностью, поддержкой транзакций и т.п.
С одной стороны, Hadoop обеспечивает очень дешевое хранение данных по сравнению с хранилищами данных, в том числе благодаря тому, что нет необходимости в лицензировании. С другой стороны, в Hadoop как в файловой системе отсутствует требование структурированности данных, тогда как для размещения данных в хранилище их следует привести к предопределенному виду.
Благодаря этим свойствам Hadoop стали широко использовать для складирования самых разных данных. Зачастую в нем размещают данные «про запас», которые пока не нужны, но могут потребоваться в будущем. В случае же хранилищ обычно известно, что предполагается делать с данными, поэтому они имеют заранее спроектированную структуру. Когда возникает ясность с назначением данных, они преобразуются к требуемому формату и перемещаются в хранилище.
Сценарии использования озер
Омниканальный маркетинг. Озера данных используются в качестве расширения хранилища данных, например, в омниканальном маркетинге (его еще называют многоканальным маркетингом). В экосистеме маркетинговых данных каждый канал, как и каждая точка контакта, ассоциируется со своими собственными базами данных.
Кроме того, многие маркетологи приобретают данные у третьих лиц. Это может быть демографическая информация или сведения о потребительских предпочтениях имеющихся и потенциальных клиентов. Дополнительные данные помогают составить более полное представление о каждом из клиентов, что, в свою очередь, позволяет проводить более персонализированные и таргетированные маркетинговые кампании.
Озеро данных довольно часто служит для накопления данных, поступающих по нескольким каналам и от множества точек контакта. Некоторые из них на самом деле представляют собой потоковые данные. Если компания предлагает своим клиентам мобильное приложение для смартфона, то данные об его использовании можно получать в режиме реального времени (или близком к нему). Часто в этом нет никакой необходимости – достаточно загружать данные раз в час или два. Тем не менее даже такая периодичность позволяет отделу маркетинга вести детальный мониторинг действий пользователей в приложении и формировать специальные предложения, поощрения, скидки и микрокампании.
Цифровая цепочка поставок. Это не менее разнообразная среда данных, и озеро данных, особенно на базе Hadoop, может в таком случае быть полезно. Hadoop в своей основе – это файловая система. В цепочке поставок генерируется много файловых данных: это и данные из файлов и документов систем EDI, и XML, и конечно же формат JSON, который все шире используется в цифровых цепочках поставок. Все это вместе – весьма разнообразная информация.
Кроме того, есть и внутренняя информация. У производственной компании это, вероятно, данные из цехов, информация об отгрузке и сведения о выставленных счетах. Озеро данных помогает собрать все эти данные вместе и работать с ними так же, как с файлами.
Единое озеро данных
Приведенные выше примеры демонстрируют целевое использование озер данных в определенных департаментах или ИТ-проектах, но у централизованных ИТ иной подход. Он заключается в реализации единого мультиарендного озера данных (multitenancy). С таким озером данных могут одновременно работать различные подразделения, бизнес-единицы компаний и технологические проекты. А с накоплением опыта становится возможным оптимизировать озера данных для разнообразных вариантов использования, видов деятельности, аналитики и даже для соответствия нормативным требованиям.
Заметили неточность или опечатку в тексте? Выделите её мышкой и нажмите: Ctrl + Enter. Спасибо!