Архитектура платформы обработки больших данных в облаке

Сергей Кравченко, Старший аналитик данных, Beltel Datanomics
Технологии обработки больших данных плотно вошли в IT индустрию. Сейчас каждый пользователь популярных сервисов взаимодействует с аналитическими системами обработки больших данных, которые принимают информацию о его поведении, обрабатывают и предоставляют рекомендации в виде, например, ленты новостей, подборки видеороликов или музыкальных рекомендаций.
В наши дни стало доступно множество технологий, позволяющее хранить, обрабатывать и анализировать большие данные. Прежде чем мы начнем говорить об архитектуре системы обработки больших данных, вспомним, что на данный момент подразумевают под большими данными или, так называемые, признаки пяти V.
- Volume – объем данных, который характеризуется в единицах измерения памяти на физических носителях. Большие данные начинаются там, где классические инструменты хранения или обработки данных бессильны из-за их объема.
- Value – значимость или ценность. Бессмысленно разворачивать сложную инфраструктуру обработки данных, если информация не имеет бизнес ценности. Эта характеристика является самой важной для проектов с большими данными.
- Variety – разнообразие. Эта характеристика заставляет строить более сложную, универсальную, «всеядную» систему обработки данных.
- Velocity – скорость поступление данных. Накладывает дополнительные требования на способность системы потреблять и обрабатывать данные на этапе получение их от источника.
- Veracity – достоверность. Данным можно доверять и принимать на основе их бизнес решения.
Концепция технологии обработки больших данных в облаке
На Рисунке 1 представлена архитектура, реализующая полный цикл работы с большими данными, разделенный на этапы.
Рисунок 1. Архитектура аналитической платформы
Передача данных (Transport/Format)
Передача может осуществляться из разных источников (Data Source) в различных форматах. Данные могут быть структурированными или неструктурированными, могут передаваться в виде документов, имеющих нечеткую структуру. Данные могут передаваться потоково или батчами; могут передаваться из баз данных, устройств телеметрии и видеооборудования. Для всех случаев существуют свои технологии приема, обработки и хранения данных, которые можно реализовать с помощью облачных технологий.
Трансформация (ETL/Processing)
Данные в исходном виде, как правило, не всегда пригодны к использованию и требуют преобразования для последующего применения в задачах машинного обучения или BI аналитики. Например, источники могут данные передавать в виде json документов, из полей которых можно собрать информацию в табличном виде для последующего анализа. Процесс преобразования данных из одного формата в другой называется трансформацией. Трансформация не ставит перед собой цель изменения информационного содержания данных, ее задача представить данные в таком виде, чтобы они могли быть использованы наиболее эффективно.
Промежуточное хранение (Staging storage)
Существует практика хранения данных в сыром виде в тех форматах, в которых они приходят от источника. Такой подход позволяет сократить время приема данных, отделив процесс приема данных от их последующей обработки. В качестве такого хранилища можно использовать Object Storage.
Хранение данных (Storage)
Существует богатый выбор облачных систем хранения данных. Выбор зависит от формата данных и задач. Например, в задачах обработки аналитических запросов хорошо подходят такие СХД как ClickHouse, для обработки транзакционных запросов широко применим PostgreSQL. Для хранения данных в json-подобных структурах, иногда называемыми документами, можно использовать MongoDB. Для реализации быстрого полнотекстового поиска используют Elasticsearch. Для работы с большими данными используют распределенные вычислительные системы, такие как Spark и HDFS, позволяющие использовать технологии машинного обучения в своей экосистеме.
Создание пользовательских приложений (Business logic)
Пользовательские приложения позволяют реализовать свою логику в работе с данными. Это могут быть системы, строящие аналитические отчеты, поисковики или просто приложения, обрабатывающие большое количество запросов на обработку и получения данных. Для реализации таких задач можно использовать технологию управления контейнерными приложениями kubernetes, которая позволяет реализовать отказоустойчивую систему за счет реплицирования с возможностью автомасштабирования в случае вариативной нагрузки на приложение.
Заключение
Современные облачные платформы представляют широкий выбор инструментариев для хранения и обработки данных разных форматов в неограниченном объеме. Преимущество облачных сервисов заключается в том, что нет необходимости администрировать инфраструктуру – облачные провайдеры это делают за вас.
Облако – это безопасно. Наши партнеры имеют аттестаты и сертификаты по информационной безопасности, в частности аттестат соответствия ИСПДн (информационной системы персональных данных), соответствующий требованиям российского законодательства по защите персональных данных. Это соответствует первому, самому высокому, уровню защищенности, позволяющему работать с персональными данными любой категории.
Дополнительно
Построение аналитической платформы в облаке Yandex Cloud (datanomics.ru)
Пример построения гибридных систем с выносом аналитики в облако (datanomics.ru)
Оптимизируем вычислительные ресурсы с помощью платформы Kafka (datanomics.ru)