Новые массивно-параллельные решения для работы с большими данными
Мы живем в эпоху данных: накапливаемые данные удваиваются в объеме каждые два года, а к 2020 году прогнозируется их невообразимое количество – более четырех десятков триллионов гигабайт. Очевидно, что старые методы и подходы к обработке такого объема информации неприменимы. Рост объемов и многообразия данных привел к появлению понятия Big Data – «большие данные». Сердцем Big Data все еще остаются базы данных, но сегодня мы наблюдаем очередную их трансформацию – переход к четвертой волне.
Всего в истории развития баз данных принято выделять четыре волны. Напомним некоторые их особенности.
Базы данных мейнфреймов. Первые БД, довольно простые и без всяких попыток оптимизировать работу с данными. Эти базы были крайне дорогостоящими, и не всякому бизнесу работа с ними была доступна.
Базы данных online transactional processing (OLTP). Вторую волну связывают с появлением реляционных баз данных, использующих модель клиент-сервер. Это сделало обработку информации доступной для всех уровней бизнеса, бурно начали развиваться системы управления отношениями с клиентами (CRM), управления ресурсами предприятия (ERP) и электронной коммерции.
Хранилища данных. Следующая волна характеризуется организацией хранилищ данных (data warehouse). Это позволило компаниям объединить транзакционные данные, такие как персональная информация или данные о продажах и финансовых операциях, с оперативными данными. В итоге появилась возможность аналитического прогнозирования по заказчикам, сотрудникам и операционной деятельности компаний. Параллельно зародились системы бизнес-аналитики (BI), а также системы для извлечения, преобразования и загрузки данных (ETL).
Платформы анализа Big Data. Со временем стало понятно, что данные – это колоссальный актив бизнеса. Но дальнейшее их использование в рамках третьей волны было затруднительным, так как на предыдущем этапе развития внимание уделялось главным образом оптимизации загрузки данных и их централизации, а вот скорость анализа и особенно прогнозирования оставляла желать лучшего. Именно в рамках четвертой волны и рассматриваются системы, которые позволяют проводить анализ и прогнозирование на больших массивах данных при минимальном времени.
Работа с большими данными не похожа на обычные процессы бизнес-аналитики – как это принято даже в системах третьей волны, не говоря уж о второй, – где порой простое сложение известных значений дает искомый результат (например, итог сложения данных об оплаченных счетах – это объем продаж за год). При работе с большими данными результат получается в процессе их очистки путем последовательного моделирования: выдвигается гипотеза, строится статистическая, визуальная или семантическая модель, на ее основании проверяется верность выдвинутой гипотезы и затем выдвигается следующая. Этот процесс требует от исследователя либо интерпретации визуальных значений или составления интерактивных запросов на основе знаний, либо разработки адаптивных алгоритмов машинного обучения, способных привести к искомому результату. Причем время жизни такого алгоритма может быть довольно коротким. Учитывая эти особенности работы с большими данными, некоторые эксперты полагают, что в работе с ними на смену традиционным монолитным системам пришли массивно-параллельные решения (MPP).
Именно к таким системам относится СУБД HPE Vertica, которая сочетает в себе привычный функционал SQL (ANSI-99), колоночное хранение данных и массивно-параллельную обработку данных.
Благодаря колоночной архитектуре Vertica эффективно сжимает данные, что позволяет существенно снизить объем информации, считываемой с дисков и передаваемой по внутрикластерной сети. Обработка запросов происходит в памяти узлов и не требует предварительного «разжатия» данных. Vertica поддерживает смешанную рабочую нагрузку с помощью гибкого механизма ресурсных пулов и эффективного использования ресурсов кластера.
Массивно-параллельная обработка данных обеспечивается за счет архитектуры кластера Vertica, состоящего из отдельных узлов, каждый из которых имеет собственную оперативную память, дисковую систему и процессоры. Выделенных, управляющих узлов в кластере нет, таким образом, в нем нет единой точки отказа.
Как было отмечено выше, в рамках четвертой волны к обработке больших данных предъявляются требования быстроты анализа и прогнозирования. Именно эта задача прекрасно решается в системе Vertica за счет реализации MPP путем распределения данных между узлами кластера. Такая реализация в итоге обеспечивает оптимальное распределение нагрузки при выполнении запросов.
Добавим также, что помимо поддержки языка SQL в системе Vertica возможно применение аналитических моделей (машинное обучение) как за счет встроенных функций (линейная регрессия и пр.), так и путем реализации специализированных функций на языке статистического анализа данных R. При этом описанные выше возможности MPP полностью сохраняются при работе с модулями машинного обучения.
В 2016 году направление по решениям Big Data в компании КОМПЛИТ было передано в департамент телекоммуникаций. Основной причиной этого стал более чем десятилетний опыт сотрудников департамента в области медиаторных решений для операторов связи – в частности, сбор и первичная обработка данных с сетевых устройств операторов связи.
За последнее время сотрудники департамента успешно реализовали ряд проектов по такому направлению, как система оценки качества связи. В рамках этих проектов решались задачи обработки информации о событиях в сети оператора, полученные от различных источников данных (коммутаторы, сигнальные точки и т.п.), их очистки и нормализации. С использованием подготовленных данных в одном из проектов был проведен инженерный анализ (feature engineering) по ряду коммерческих услуг. В рамках анализа исследовалась корреляция событий по временным окнам. Подобное решение было эффективно реализовано на базе системы Vertica за счет встроенных функций аналитики, таких как event based windows.
В настоящий момент в лаборатории компании КОМПЛИТ развернут стенд Vertica, на котором сотрудники департамента проводят исследовательские работы по интеграции Vertica с системами хранения данных Hadoop (Cloudera и Horton), а также разработку моделей прогнозирования с использованием таких систем, как R Studio.