mdd:how_to_build_data_lake

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
mdd:how_to_build_data_lake [2017/12/27 21:31] – [Основные услуги (сервисы) в Data Lake] egdeliyamdd:how_to_build_data_lake [2026/08/29 07:59] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== Как построить озеро данных для  предприятия. ======
  
 +Mark Madsen, HOW TO BUILD AN ENTERPRISE DATA LAKE: IMPORTANT CONSIDERATIONS BEFORE JUMPING IN [[http://resources.idgenterprise.com/original/AST-0163853_how-to-build-an-enterprise-data-lake.pdf|http://resources.idgenterprise.com/original/AST-0163853_how-to-build-an-enterprise-data-lake.pdf]]
 +
 +Данная статья рассказывает о том, как спроектировать озеро данных.
 +
 +===== Основная часть =====
 +
 +==== Идея и главные принципы Data Lake. ====
 +
 +Озеро данных (data lake) представляет собой единую систему для хранения и обработки всех данных, которые нужны предприятию для анализа и аналитики.
 +
 +Ключевые принципы озера данных - оно должно быть быстрым, обеспечивать простой механизм для сбора и хранения любой информации, независимо от формата, структуры, скорости поступления и т.д.
 +
 +Озеро данных должно предоставлять инфраструктуру для хранения такого большое количества данных, какое возможно, поскольку неимение данных тогда, когда они нужны, может дорого обойтись, а сбор данных относительно дешёвая операция. 
 +
 +Озеро данных предоставляет не только хранилище для данных, но также является местом, где можно их обрабатывать.
 +
 +Озеро данных должно предоставлять возможность как хранить данные в сыром виде (без обработки), если вы не знаете, будет ли кто-нибудь ещё их использовать или предоставляют ли они ценность для кого-нибудь; так и обрабатывать их, если данные будут пере использоваться или использоваться часто разными людьми.
 +
 +==== Наивное озеро данных ====
 +
 +Самым наивным подходом к созданию озера можно назвать сбор и хранение данных в чистом виде на одном из кластеров Hadoop. Помимо того что это решение не является масштабируемым, оно также приводит к тому, что людям приходится делать одну и ту же работу по поиску, анализу и обработке данных каждый раз, когда они хотят ими воспользоваться.
 +
 +Наивный подход к построению озера также связан с несколькими заблуждениями о данных и о том, как их можно использовать. Данный метод предполагает, что люди обладают навыками поиска и обработки необходимых данных, но это не так для большинства аналитиков. Перед тем как получить данные, люди должны их проанализировать, но в жизни люди хотят быстро получать конкретные данные. Данные не должны храниться всегда одинаково, независимо от структуры и формата, необходимо использовать различные методы для хранения различных типов данных, чтобы осуществлять поиск и каталогизацию.
 +
 +==== Архитектура озера ====
 +
 +Озеро данных должно удовлетворять трём главным потребностям: получение данных, обработка данных (управление данными) и предоставление доступа к данным. 
 +
 +Получение данных должно быть разделено с управлением данных. Отделение получения данных от управления данными позволяет получать данные в одно время, а обрабатывать их в другое. Это предполагает также, что вы должны построить подсистему получения данных с неизменяемым хранилищем данных для необработанных данных. При этом вы сохраняете все исходные данные и можете хранить все ваши измененные или полученные данные отдельно. Неизменяемое хранилище данных позволяет записывать данные так быстро, как они поступают. 
 +
 +Доступ к данным должен быть независимым от получения и управления. Некоторые люди хотят получить доступ к необработанным данным, некоторые хотят обработанные структурированные данные, а другие хотят обрабатывать свои собственные данные. Люди не являются единственными потребителями данных - озеро должно поддерживать приложения, которые независимо контролируют обработку данных.
 +
 +Трехстороннее разделение функций в озере означает, что повторное использование данных может быть осуществлено, когда это действительно требуется. Разделение позволяет получить необработанные данные, которые не были изменены, данные, которые стандартизованы, и данные, которые очищаются и структурируются для конкретного использования.
 +
 +==== Принципы построения озера данных ====
 +
 +Есть несколько принципов, которыми нужно руководствоваться при создании озера:
 +
 +  * Не нужно пытаться понять, как смоделировать все данные заранее, нужно просто собрать их.
 +  * Вместо того чтобы пытаться контролировать или предотвращать изменения данных, нужно сконструировать систему, которая приспособлена к изменениям.
 +  * Вместо того чтобы контролировать то, что люди могут делать с данными, нужно сосредоточиться на включении многих видов использования и обработки данных, но делать видимым, как данные были изменены.
 +
 +==== Технологическая архитектура ====
 +
 +Вот несколько требований к функциональности Data Lake. Озеро данных должно:
 +
 +  * давать возможность сбора данных при любой задержке
 +  * хранение любых данные
 +  * обеспечить централизованный доступ к данным
 +  * давать возможность преобразовывать данные
 +  * выполнять обработку данных
 +  * публиковать данные
 +  * давать возможность совместно использовать данные
 +  * управлять и архивировать данные
 +
 +==== Основные услуги (сервисы) в Data Lake ====
 +
 +**Сохранение данных**. 
 +
 +**Перемещение данных**.Озеро данных должно предоставлять интерфейсы для перемещения данных из других систем, перемещения данных в рамках озера или из озера в другие системы.
 +
 +**Доступ к данным**.Сервисы для доступа к данным должны обеспечивать внешним приложениям доступ к данным независимо от формата или типа хранения данных.
 +
 +**Фреймворки для обработки**. 
 +Есть много различных фреймворков для различных типов работ, потому что ни один не решает все проблемы в равной степени. Выбор определяется задачей, которую вы хотите решать.
 +При проектировании важно попытаться сохранить количество фреймворков к минимуму.
 +
 +**Инструменты для управления потоками данных**. 
 +Озеро данных должно иметь инструменты для потоков данных, чтобы давать необходимый уровень абстракции, который позволял бы разработчиком не заниматься такими вещами, как построение конвейеров данных, а заниматься например написанием логики для потоков данных.
 +
 +**Планирование и управление рабочими процессами.**
 +Для координации многочисленных потоков данных и работ, которые могут выполняться в озере, нужно предоставить инструменты для планирования и управления рабочими процессами, которые должны определять приоритеты для различных работ; управлять зависимостями между заданиями; развёртывать процессы; отслеживать неполадки при работе процессов, работ или приложений; запускать восстановление, перезапуск или процедуру очистки после проблем;   мониторить рабочие процессы, чтобы узнать, что работает, а что нет, а также узнать, что всё работает должным образом.
 +
 +**Метаданные.**
 +Все данные, загруженные в озеро или созданные в пределах озера, должны иметь метаданные, потому что важно знать, откуда и когда пришли данные, формат данных, а также информацию об использовании. Это нужно для эффективного поиска данных, отслеживания изменений, которые были проделаны над ними, отслеживания зависимости в данных и отслеживания использования конфиденциальных данных.
 +
 +**Курирование данных.**
 +Данный сервис должен предоставлять интерфейсы и базовые услуги, необходимые для индексирования данных, архивирования устаревших данных и всего того, что называется курированием данных.
 +
 +**Службы платформы**.
 +Базовая платформа, на которой построено озеро данных, должна предоставлять необходимые для озера службы.
 +Управление хранением данных, координация процессов, управление ресурсами, шифрование, аутентификация, мониторинг, логирование и безопасность - это службы, которые должны быть предоставлены . Если их нет, то они также должны быть созданы.
 +
 +==== Архитектура области хранения данных ====
 +
 +Данные в озере хранятся в четырёх областях, это сделано для того, чтобы изолировать друг от друга данные, которые претерпевают различные степени обработки. 
 +
 +**Зона сбора сырых данных.** В этой зоне данные не претерпевают или претерпевают малые изменения и записываются в исходном формате. Это сделано для быстрого доступа к необработанным данным.
 +
 +Этот район озера должен быть неизменным; данные поступают как есть, без попыток очистить или стандартизировать их. 
 +
 +**Зона управления для обработанных и стандартизированных данных.** Некоторые данные более ценные или используются чаще, чем другие данные. В этом случае данные могут быть стандартизированы, обработаны или очищены и сделаны доступными в других зонах озера. 
 +
 +**Зона для общих или предназначенных для конкретного использования данных.** Когда данные являются общими для большой части организации, они находится в этой части озера. Это небольшая часть из имеющихся данных, использование которых широко распространено.
 +
 +Данные , которые предназначены для определенной цели, также принадлежит в этой области.
 +
 +**Переходная зона для временных или одноразовых данных.** Эта зона может рассматриваться как место, в котором люди могут работать с данными, не затрагивая другие данные. Это может быть загрузка внешнего файла или подготовка данных для модели машинного обучения. 
 +
 +Использование различных зон обеспечивает гибкость. По мере того как использование или ценность конкретных данных увеличиваются, можно затратить ресурсы для того чтобы перевести данные в формат, более подходящий для многоразового использования. 
 +
 +В то же время эта архитектура требует работы для поддержания. Данные не будут сами переходить из одной зоны в другую. Нужны определённые правила для того чтобы определить, когда данные должны быть размещены в различных областях.
 +
 +====== Заключение ======
 +
 +Озеро данных представляет собой систему для хранения данных с определённой архитектурой, которая удовлетворяет принципам проектирования, таким как: изоляция изменений, чтобы уменьшить влияние быстро меняющихся компонентов на более стабильные части системы; использование сервисов вместо монолитной архитектуры; а также следует принципу того, что архитектура данных также важна, как и архитектура самой технологии