Данных становится все больше. Важно уметь эффективно хранить и обрабатывать их для решения сложных бизнес-задач. Одним из первых шагов на пути к успешной стратегии является выбор технологии хранения, поиска, анализа и отчетности по данным. Как выбрать между базой данных, Data Warehouse и Data Lake? Рассмотрим ключевые различия и когда следует использовать каждое.

Что такое Data Warehouse, Database и Data Lake

DWH (Data Warehouse) — это хранилище со всеми его компонентами, данные в него собираются из разных источников. Также в DWH входят BI-средства, которые формируют конечные отчеты. Это end-to-end история: от загрузки данных, до отображения конкретной информации на их основе. 

Database — элемент DWH, его цель — упорядоченное хранение данных. Они бывают разных типов: SQL и NoSQL, реляционные и нереляционные, но суть простая — хранение и доступ к определенной информации. 

Есть подход к объединению данных из разных источников, называемый ETL — Extract, Transformation, Load. В нем данные извлекаются, трансформируются и загружаются в целевой источник, в Database. Есть другой подход — ELT (Extract, Load, Transformation). В отличие от ETL, здесь данные сначала извлекаются, затем загружаются в так называемый Data Lake, а после преобразуются в необходимый формат.

Data Lake — подход к архитектуре, в котором создается промежуточное хранилище, куда сваливаются сырые данные из всех источников. Внутри этого хранилища они обрабатываются, агрегируются, декомпозируются, композируются, нормализуются и улетают в базу данных. Данные собираются со всех источников, потом складываются в Data Lake. Далее они преобразуются и отправляются в основное хранилище, где все это хранится в красивом виде, без лишней информации. В то же время, учитывая, что сохраняется копия данных, всегда можно к ним вернуться. Если трансформация получилась плохой, есть данные из источника, к которым можно сходить, и еще раз пересобрать.

Использовать Data Lake или нет зависит от Jobs To Be Done. Две основные задачи, которые решает Data Lake: хранение исторических данных из первичных источников, и последующий анализ, переработка данных, что используется в Big Data и ML.

Если таких задач не стоит, то с большой долей вероятности Data Lake не нужен. Он будет только тратить лишние мощности, придется платить за серверы. Разумнее просто реализовать ETL и лить данные сразу в базу.

Сравниваем Data Lake, DWH и БД

Data Lake vs. DWH

Data Lake и DWH используются для агрегирования нескольких источников данных, но у них разные цели и устройство.

В Data Lake собираются данные из различных источников, независимо от того, структурированы они или нет. Это позволяет использовать данные для искусственного интеллекта и машинного обучения.

DWH — это централизованное место анализа структурированных данных для конкретных целей, связанных с бизнес-аналитикой.

Data Lake не имеют схемы и более гибки для хранения реляционных данных из бизнес-приложений, а также нереляционных журналов с серверов и, например, социальных сетей. DWH, напротив, полагаются на схему и принимают только реляционные данные.

Хорошо, когда организация использует оба инструмента. Такое бывает редко из-за дороговизны.

DWH vs. базы данных

DWH и базы данных хранят структурированные данные, но были созданы с учетом различий в масштабах и количестве источников.

База данных в основном используются в монолитной среде, где данные генерируются одним приложением. DWH создано для поддержки больших объемов данных из всех отделов организации.

Оба поддерживают языки запросов и возможности создания отчетов. В основном используются бизнес-аналитиками.

Особенности решаемых задач на примере агротеха

Данные, касающиеся урожайности сельскохозяйственных культур, погодных условий, пестицидов и многого другого, требуют DWH. Благодаря этому способу размещения данных, инженеры и бизнес-аналитики могут выявить и устранить такие недостатки в экосистеме, как проблемы с качеством почвы, ненужное использование пестицидов.

Data Lake подходит, если требуется сложный анализ данных, так как озеро заточено на эффективное хранение Big Data. Также Data Lake нужно, когда с этими данными работает ML. Например, использовать спутниковые изображения, данные о погоде для прогнозирования урожайности ферм, учитывая такие параметры как состояние сельскохозяйственных культур, потребности в орошении. Это помогает фермерам использовать полученные знания для принятия решений.

Какую проблему мы решали с помощью Data Lake

Инженеры Smartup участвовали в разработке Data Lake на проекте «Shop Advizor». Идея была в следующем: через bluetooth и wi-fi с пользовательских телефонов собиралась информация. На ее основе определялся профиль пользователя, ему показывалась таргетированная реклама. Все эти сырые данные складывались в Data Lake, обрабатывались и в виде отчетов попадали дальше. Данные анализировались, из них извлекались пользователь и его интерес. В таком виде информация попадала в базу.

Заключение — как выбрать способ размещения данных?

Следует учитывать 3 вещи:

1. Важные факторы — это количество источников данных и формат, в котором они поступают. Data Lake принимает неструктурированные данные. DWH — только структурированные. Базы данных лучше всего работают, когда имеется один источник структурированных данных.

2. Data Lake обеспечивает гибкость хранения необработанных данных. БД и DWH требуются процессы ETL, в которых необработанные данные преобразуются в заранее определенную структуру.

3. От того, кто будет пользоваться данными, зависит способ их размещения. Если основной вариант использования — бизнес-аналитика, подойдет DWH, но с более высокими затратами на хранение данных. Если бизнес-аналитик хорошо владеет SQL, и ему нужно создать отчет о тенденциях только по одной части бизнеса, лучше всего подойдет реляционная база данных. Однако это не значит, что в компании пользуются только одним способом размещения данных, можно совмещать все три в зависимости от бизнес-задач.

Комментарии (2)


  1. Tzimie
    13.04.2024 06:25

    И почему базы данных связаны именно с монолитом? Микросервисы не могут использовать базы данных?)


    1. SmirnGreg
      13.04.2024 06:25

      У каждого микросервиса своя база данных, а DWH их позволяет их все вместе одним SQL запросом читать для аналитики