Инструменты для работы c Big Data в облаке VK Cloud

Модуль 3

Хранение и анализ данных с использованием облачных сервисов

Тема 2

Инструменты для работы с Big Data в облаке

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

Классические реляционные базы данных хорошо работают в пределах одной виртуальной машины с ограниченным дисковым пространством. Но со временем аналитические запросы к ним начинают мешать транзакционным — добавлению и извлечению новых записей. А обилие источников мешает увидеть общую картину по компании.

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

Хранилища и озера данных как решение проблем

Самая популярная и базовая задача — это построение хранилища данных (DWH, Data Warehouse, или КХД — корпоративное хранилище данных). Такие системы хранят данные в структурированном виде в таблицах, консолидируют информацию из разных систем, которые есть на предприятии, позволяют увидеть общую картину на основе данных.

Аналитики используют данные из таких систем, извлекая их с помощью SQL-запросов или применяя для визуализации. В VK Cloud для решения этой задачи есть сервис Arenadata DB. Это решение от российского вендора на базе Open-Source-продукта Greenplum, которое доступно в виде управляемого сервиса в облаке.

Существуют и другие системы для работы с большими данными, которые позволяют хранить и обрабатывать данные в неструктурированном (картинки, аудио, видео, тексты, сканы) или полуструктурированном виде (JSON, XML, Parquet, CSV). Такие системы часто называют Data Lake — озеро данных. Основная задача подобных систем — накопить максимальный объем данных для дальнейшей обработки. Дальше эти данные можно обрабатывать, загружать в хранилище, использовать для машинного обучения или продвинутой аналитики.
Самый популярный инструмент для решения подобной задачи — это Hadoop. В облаке VK Cloud представлен дистрибутив Hadoop от российского вендора Arenadata.

Использование кластерных систем для хранилищ и озер данных дороже и сложнее из-за различных накладных расходов и усложнения инфраструктуры. Именно поэтому разумно использовать такие системы в случаях, когда преимущества от использования будут оправдывать издержки. Для ориентира можно принять, что о хранилище данных на базе Greenplum можно задуматься при объеме от 4–5 ТБ несжатых данных, а о Hadoop — от 10 ТБ.

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