News

AWS как платформа для построения озера данных

News | 21.02.2022

С каждым годом мы все чаще перемещаем различные сферы своей жизнедеятельности в on-line. Жизнь при пандемии коронавирусной инфекции заставила человечество переосмыслить сложившиеся представления о возможностях удаленной работы и образования, требуемых масштабах on-line покупок, покрытии сервисов логистики и надежности сервисов жизнеобеспечения.

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

Чем озеро данных отличается от базы данных и от хранилища данных?

База данных - это строго структурированное табличное хранение данных, объединенных заранее заданной логикой хранения с целью обеспечения ежедневных транзакций (Online Transaction Processing, OLTP).

Хранилище данных  предназначено для хранения большого объема данных, структурированных строго регламентированными способами для последующего анализа (Online Analytical Processing, OLAP). Данные из различных источников при помощи процесса извлечения, преобразования и загрузки (Extract, Transform, Load, ETL) приводятся к строгой схеме хранения и записываются в хранилище в рамках регулярных циклов обработки данных.

Озеро данных  Вся ценность данных в озере для последующего анализа определяется их хранением в первоначальном, неизменном виде. Сложно определить, в каком разрезе понадобится анализировать данные в обозримом будущем, чтобы изначально подчинить их строгой системе хранения. 

Вся суть озера данных состоит в том, “чтобы хранить необработанные данные в их оригинальном формате до тех пор, пока они не понадобятся.

David Loshin, President, Knowledge Integrity, Inc.

Многие компании накопили большие объемы транзакционных данных, которые для принятия эффективных бизнес решений, необходимо интегрировать с данными из других источников. Например, устройства интернета вещей (IoT): датчики на транспортных средствах, сельскохозяйственном оборудовании, носимых устройствах поставляют огромные объемы данных.

 

Построение эффективного озера данных, обладающего достаточной емкостью для хранения, с низким показателем стоимости, эффективной моделью обработки и анализа данных, с элементами искусственного интеллекта - очень актуальный вопрос для бизнеса любого масштаба.

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

Преимущества использования облачных провайдеров для построения озера данных

  • Возможность хранить практически неограниченные объемы данных по приемлемой стоимости;
  • Быстро и гибко выделять требуемые вычислительные мощности для анализа;
  • Использовать преднастроенные согласно лучшим современным практикам сервисы;
  • Опробовать различные подходы для анализа данных и выбрать наиболее подходящий;
  • Использовать гибкую систему ценообразования по принципу pay-as-you-go.

Компоненты программных продуктов, используемых для построения озера данных

  • Платформа хранения данных
  • Средства организации ETL процесса обработки данных
  • Средства анализа и построения ML моделей
  • Средства для визуализации результатов и предоставления отчетности

Сервисы для построения озера данных. 

Платформа Hadoop появилась в 2006 роду и, благодаря программной инфраструктуре распределенных вычислений между большим количеством узлов кластера, стала основой для обработки больших данных. Ядром системы Hadoop, является распределенная файловая система HDFS (Hadoop File System), которая позволяет хранить структурированные и неструктурированные типы больших наборов данных на различных узлах кластера.
На сегодняшний день, существует большое количество программных  средств составляющих экосистему Hadoop. Также немаловажную роль в эффективности анализа данных в озере играют форматы хранения данных.

Экосистема Hadoop

 Компоненты экосистемы hadoop

Основные компоненты экосистемы Hadoop для анализа больших данных

  • YARN (Yet Another Resource Negotiator) – предназначен для управления обработкой, распределяет ресурсы и планирует задачи. Состоит из двух основных компонентов ResourceManager and NodeManager. ResourceManager включает Schedulers and Applications Manager.
  • Hadoop MapReduce – платформа программирования и выполнения распределенных вычислений больших наборов данных с использованием распределенных и параллельных алгоритмов внутри среды Hadoop. Проводит вычисления в два этапа. Map - распределяет задачи по нодам, Reduce - передает данные на главный узел и формирует окончательный результат вычислений.
  • Spark - предназначен для распределенной пакетной и потоковой обработки неструктурированных и слабоструктурированных данных. В отличие от MapReduce использует специализированные примитивы для рекуррентной обработки в оперативной памяти. Благодаря этому многие вычислительные задачи реализуются значительно быстрее. Spark может работать как в среде кластера Hadoop под управлением YARN, так и без компонентов ядра Hadoop. Spark состоит из ядра, инструмента для обработки данных с помощью SQL-запросов, Streaming для обработки потоковых данных, MLlib - библиотек машинного обучения и GraphX – модуля распределенной обработки графов.
  • Apache Hive - система управления базами данных. Позволяет выполнять SQL запросы, агрегировать и анализировать данные, хранящиеся в Hadoop.
  • Kafka - распределенный программный брокер сообщений. Фундаментальное отличие Kafka от очередей таких как RabbitMQ, AWS SQS состоит в том, что сообщения не удаляются брокерами по мере обработки их консьюмерами, благодаря чему одно и тоже сообщение может быть обработано разными консьюмерами и в разных контекстах.
  • HBase - это распределённая версионированная NoSQL база данных. Таблицы в HBase трехмерные: строковый ключ, штамп времени и квалифицированное имя колонки. HBase позволяет работать с отдельными записями в реальном времени.
  • Pig - позволяет составлять сценарий преобразований входных данных. Pig полезен на этапе подготовки данных, поскольку он может легко выполнять сложные запросы и хорошо работает с различными форматами данных.
  • Hue - это веб интерфейс для анализа данных на Hadoop. Состоит из файлового браузера, планировщика задач, набора приложений для доступа практически ко всем модулям кластера и платформы для разработки приложений.
  • Tez - это расширяемая open-source платформа создания высокопроизводительных приложений пакетной и интерактивной обработки данных, координируемая YARN в Apache Hadoop. В Tez задачи MapReduce объединяются в одно задание, обеспечивая параллелизм и сериализацию.
  • Mahout - это распределенная структура линейной алгебры и математически выразительный Scala DSL, предназначенная для того, чтобы математики, статистики и ученые данных могли быстро реализовать свои собственные алгоритмы.
  • Phoenix - это механизм параллельной реляционной базы данных, который поддерживает обработку транзакций в реальном времени в Hadoop с использованием HBase в качестве резервного хранилища. В отличие от Apache Hive, Phoenix компилирует SQL-запросы в собственные API-интерфейсы NoSQL, не используя MapReduce, что позволяет создавать быстрые Big Data приложения с низкой временной задержкой (low latency), работающие с нереляционными хранилищами данных.
  • Presto - механизм распределенных запросов для больших данных, использующий язык запросов SQL. Обеспечивает выполнение SQL запросов к Hadoop, Kafka, AWS S3, MySQL, MongoDB. Zookeeper - сервис-координатор и администратор Hadoop. Основные компоненты экосистемы Hadoop для анализа больших данных

Форматы данных в озере

Наиболее распространенные форматы, используемые для приема, хранения неструктурированных или частично структурированных данных и обмена ими - это CSV и JSON. В Hadoop различные форматы файлов используются для оптимизации процедур, таких как: сокращение времени записи/чтения, поддержки схем данных, возможности сжатия данных, поддержки дискретности.

  1. Parquet - столбчатый формат хранения данных, оптимизированный для хранения сложных структур и эффективного сжатия. Лучше подходит для аналитических запросов; операции чтения гораздо эффективнее, чем запись.
  2. Avro - строковый формат хранения данных. Хранит схему данных в формате JSON, облегчая ее чтение и интерпретацию любой программой. Сами данные лежат в двоичном формате, компактно и эффективно.
  3. ORC (Optimized Row Columnar) - оптимизированный формат хранения данных для Apache Hive. Хранит данные в идеально компактном виде, не требует построения больших, сложных или обслуживаемых вручную индексов.

Облачные средства и подходы AWS (Amazon Web Services) для построения озера данных

Хранение данных озера в облаке AWS

Благодаря разработанной Amazon файловой системе Elastic MapReduce File System (EMRFS), стало возможным использование объектного хранилища Amazon S3 в качестве уровня хранения для Hadoop в кластерах Amazon Elastic MapReduce (EMR). Amazon S3 – это высокомасштабируемый экономичный сервис, предлагающий высокую надёжность, благодаря чему, он отлично подходит в качестве хранилища при обработке больших данных.

Организация процесса ETL в AWS (Amazon Web Services)

AWS позволяет гибко построить систему анализа больших данных в зависимости от потребностей клиента.

Для обработки больших данных в режиме реального времени будет оправданным разворачивание собственного кластера Amazon Elastic MapReduce (EMR).

На каких платформах AWS можно развернуть кластер Amazon EMR?

  1. Amazon EC2 инстансы
  2. Кластер Kubernetes Amazon EMR on EKS
  3. Amazon EMR Serverless

 Преднастроенный набор необходимых компонентов экосистемы Hadoop для развертывания EMR кластера на основе Amazon EC2

  • Core Hadoop: Hadoop, Hive, Hue, Mahout, Pig,
  • Tez HBase: HBase, Hadoop, Hive, Hue, Phoenix, ZooKeeper
  • Presto: Presto with Hadoop, HDFS, Hive Metastore
  • Spark: Spark on Hadoop, YARN and Zeppelin

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

ETL сервисы AWS

Если обработка данных в озере происходит регулярно, но не требует анализа данных в реальном времени, то можно воспользоваться ETL сервисами AWS.

Это прежде всего AWS Glue, который помогает из неструктурированных данных, запуская Crawler процессы, определить схемы данных и создать каталоги - репозитории метаданных.

AWS Athena основанный Presto и позволяющий отправлять SQL запросы к неструктурированным данным, хранящимся в Amazon S3. AWS Athena интегрирован с AWS Glue каталогами.

Amazon SageMaker используется для построения ML моделей и Amazon QuickSight для визуализации, создания дашбордов и составления отчетов.

Для ускорения процесса создания озера данных, удобной и безопасной его настройки, AWS был создан сервис Lake Formation. Он является неким агрегатором инструментов и сервисов для работы с озером данных, что неоспоримо удобно при создании, настройке компонентов, мониторинге и обеспечении безопасности озера данных.

Гравитация данных, как основа архитектуры Lake Fornmation

Начать рассмотрение архитектуры Lake Formation нужно с концепции о гравитации данных. Описанная Dave McCrory в 2010 году, в применении к хранилищам и озерам данных, концепция предполагает, что данные имеют вес. Объем данных в хранилищах и озерах постоянно растет, как растет и количество приложений, которые их используют. Копировать и перемещать данные со временем становится обременительно, данные “притягивают” к себе сервисы, приложения, средства анализа.

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

 

Гравитационный подход, как кольцо специально созданных сервисов для хранения и анализа данных в AWS Lake House

 Build a Lake House Architecture on AWS

Пять логических уровней архитектуры Lake House

Архитектуру Lake House можно организовать как стек из пяти логических уровней.  Перечислим их:

  • Уровень источников данных
  • Уровень первичной обработки данных для перемещения в озеро
  • Уровень хранения данных в озере
  • Уровень созданных каталогов метаданных
  • Уровень обработки данных и уровень их представления

Каждый из этих уровней состоит из нескольких специально созданных компонентов - сервисов AWS, выполняющих соответствующие процессы обработки данных и отвечающих конкретным требованиям. Распределенные по уровням сервисы AWS представлены на рисунке и частично описанные выше. Архитектура Lake House, построенная на основе специально созданных сервисов AWS, позволит в короткие сроки получить представление обо всех данных находящихся в вашем распоряжении и позволит применять новые аналитические подходы и технологии в будущем.

Многоуровневый и компонентный подход анализа данных Lake House на AWS

 Как построить подход  Lake House на AWS, как  многоуровневая и компонентная архитектура анализа данных

Amazon Web Services на основе своей глобальной инфраструктуры предлагает лидирующую в отрасли по показателям безопасности, отказоустойчивости, стоимости платформу для развертывания озер данных. Продуманные сервисы, разработанные по лучшим практикам в отрасли, способные удовлетворить различные потребности по производительности, позволяют в короткие сроки развернуть озера данных требуемых объемов и глубины анализа.

Прогрессивные архитектурные решения позволяют гибко, экономно и эффективно анализировать большие объемы данных и удовлетворять растущие потребности бизнеса в получении аналитических данных. Возможность использования ML моделей как преднастроенных AWS, так и разработанных самостоятельно, способны поднять эффективность анализа и предсказаний на новые уровни.

Хотите легко и быстро развернуть управляемый сервис для обработки больших данных на основе Softprom AWS Lake House?

Компания Softprom предоставляет кредиты для подбора и тестирования необходимых вам сценариев лейк хаус в облачном объектном хранилище Amazon S3

Если вам интересно узнать больше об озерах и механизмах облачных данных, подписывайтесь на уроки AWS Softprom Academy.

По этой теме читайте также:

Готовые Machine Learning (ML) решения для приложений от Amazon Web Services (AWS) улучшают бизнес.
[Видеообзор] Amazon Personalize — как построить e-commerce ИТ-сервисы как на amazon.com?
Запись сессии AWS Tech Talk: Internet of Things 
Как настроить удаленную работу? Решение от AWS. Поможем бесплатно запустить.
Миграция базы данных в облако AWS
Развертывание e-commerce в AWS
Автомасштабирование в AWS