Сегодня тема “больших данных” (Big Data) — едва ли не самая горячая по активности обсуждения. Именно обсуждения, а не реального применения этой технологии. Во всяком случае такова ситуация в нашей стране. Лишним подтверждением тому стала проведенная в середине апреля в Москве конференция Oracle Big Data Extreme Analytics Summit. Как показало экспресс-голосование, большинство участников не только не планируют запуск каких-либо проектов на базе больших данных, но имеют очень приблизительное представление о Hadoop — одной из основных технологий Big Data, без упоминания которой сегодня не обходится ни одно мероприятие такого рода. Тем не менее конференция была очень информативной и интересной. Конечно, перефразируя восточную поговорку, можно посетовать: сколько ни говори “Hadoop”, во рту слаще не станет, но согласимся, что без этапа “пропаганды и агитации” не обходилось освоение ни одной прорывной концепции и технологии.
Почему интерес к Big Data обострился именно сейчас? Чтобы понять это, нужно отдавать себе отчет в том, что эпитет “большой” — не единственная и не главная характеристика Big Data. Как пояснил руководитель направления продаж BI-решений Oracle в странах Восточной Европы и СНГ Али Реза Куюджу, здесь следует принимать во внимание четыре так называемых V-фактора: наряду с объемом данных (volume) важную роль играют скорость их сбора (velocity), вариативность (variety) и ценность (value). Большие объемы данных накапливаются в традиционных транзакционных приложениях, а также в системах мониторинга разнообразных датчиков и сенсоров, в социальных сетях, в системах видеонаблюдения, записях переговоров call-центров и т. д. Понятно, что информация с датчиков и из социальных сетей поступает с высокой скоростью, а контент, потребляемый массами интернет-пользователей, характеризуется существенной вариативностью.
К примеру, датчики, установленные на авиадвигателе, генерируют около 10 Тб за полчаса. Примерно такие же потоки характерны для буровых установок и нефтеперерабатывающих комплексов. Только один сервис коротких сообщений Twitter, несмотря на ограничение длины сообщения в 140 символов, генерирует поток 8 Тб/сут. Если все подобные данные накапливать для дальнейшей обработки, то их суммарный объем будет измеряться десятками и сотнями петабайт. Дополнительные сложности проистекают из вариативности данных: их состав и структура подвержены постоянным изменениям при запуске новых сервисов, установке усовершенствованных сенсоров или развертывании новых маркетинговых кампаний.
Совершенно очевидно, что все указанные данные могли собираться и храниться и прежде, но это не делалось, потому что было очень дорого. Сегодня стоимость ресурсов процессоров и систем хранения снизилась столь значительно, что работа с Big Data вполне может быть переведена в практическую плоскость. Для этого, разумеется, нужно будет решить ряд непростых технологических проблем, однако главный вопрос — нужно ли это делать, и в каких случаях? Здесь в действие вступает четвертый V-фактор — ценность результатов, которые будут получены благодаря обработке Big Data. В свое время первопроходцами на этом направлении были такие известные интернет-компании, как Google, Yahoo и Facebook, которые с пользой для себя собирали и анализировали информацию Web-логов, помогающую выявить особенности поведения, а также предпочтения посетителей сайтов и на этой основе строить целевые рекламные и маркетинговые кампании. Вице-президент Oracle EMEA по перспективным технологиям Завье Верхай привел оценки McKinsey, согласно которым использование всего массива данных глобального позиционирования в системах Big Data способно увеличить доходы сервисных компаний на 100 млрд. долл., а применение подобных технологий в розничной торговле США могло бы поднять ее рентабельность на 60%. Довольно фантастически с точки зрения российских реалий выглядит предсказываемая экономия в 300 млрд. долл. для здравоохранения США, которую можно было бы получить благодаря сокращению числа посещений пациентами лечебных учреждений за счет онлайнового мониторинга их состояния, осуществляемого специальными “умными” сенсорами.
Как бы там ни было, но даже если экономический эффект будет очевиден, для его получения придется использовать целый ряд новых и не очень хорошо известных в нашей стране технологий. Следует отметить, что многие вендоры уже сегодня готовы предоставить базовые инструменты для работы с большими данными. В их числе и корпорация Oracle, представившая недавно специализированный программно-аппаратный комплекс Oracle Big Data Appliance. Свой рассказ о нем руководитель группы перспективных технологий “Oracle СНГ” Андрей Пивоваров начал с общей характеристики объекта анализа. Он отметил, в частности, что большие данные имеют крайне низкую информационную плотность, а потому для извлечения из них ценных результатов необходимо обеспечить весьма ресурсоемкую обработку. Поручать ее дорогим мощным серверам реляционных БД нецелесообразно по экономическим соображениям, поэтому был выбран путь, предполагающий распределение обработки петабайтных информационных массивов по множеству дешевых компьютеров, которые работают параллельно.
В зависимости от специфики решаемых задач рассматриваются два альтернативных варианта. Первый связан со свободным проектом Apache Hadoop и базируется на распределенной файловой системе Hadoop Distributed File Sysytem, которая охватывает десятки тысяч узлов. Каждый такой узел обрабатывает определенный выделенный ему фрагмент данных, используя инструментальные средства MapReduce, и передает результаты в традиционную СУБД для их последующего анализа. Второй вариант основан на применении СУБД класса NoSQL, способных быстро оперировать простыми структурами данных ключ – значение. И в том и в другом случае, поскольку какой-то определенной модели данных нет, всю логику предварительной обработки массива приходится реализовывать разработчикам приложений. Для повышения отказоустойчивости и масштабируемости одни и те же данные дублируются на нескольких узлах (обычно трех), благодаря чему отказ одного или двух из них не ведет к потере результатов. Поскольку данные распределены по множеству серверов, необходимо организовать и согласовать выполняемые ими процессы таким образом, чтобы при выборке и агрегации данных нагрузка равномерно распределялась по всем узлам. Эти функции берет на себя MapReduce, давая программисту возможность сосредоточиться на логике обработки данных. Скажем, на выделении в неструктурированных Web-логах отдельных сеансов посещений сайтов теми или иными пользователями с последующим анализом их привычек и предпочтений. Грубо говоря, целью предварительной распределенной обработки Big Data является извлечение из “неструктурированной породы” неких структурных элементов и агрегатов, пригодных для анализа известными статистическими и иными методами (OLAP, Data Mining, геоинформационный и семантический анализ).
Следуя своей стратегии предоставления предварительно сконфигурированных и отлаженных программно-аппаратных решений, Oracle выпустила комплекс под названием Oracle Big Data Appliance, который, как считают в корпорации, снимет с заказчика все хлопоты по настройке и конфигурированию. Он представляет собой стойку с 18 серверами Sun X4270 M2 (по 12 ядер, 46 Гб ОЗУ и 36 Тб на каждом узле), способную хранить и обрабатывать 648 Тб сырых данных. Утверждается, что за счет объединения подобных стоек возможна практически неограниченная масштабируемость. Приводился, в частности, пример, в котором четыре стойки были способны хранить и обрабатывать 2,8 Пб данных. На каждой стойке установлены ОС Oracle Linux, виртуальная Java-машина Java Hotspot VM, дистрибутив Cloudera Hadoop, среда исполнения статистических программ на языке R, СУБД Oracle NoSQL, а также всевозможные адаптеры и коннекторы для интеграции Big Data с традиционными реляционными и аналитическими серверами. В роли таких серверов могут выступать, в частности, и известные программно-аппаратные решения Oracle Exadata и Exalytics, которые подключатся к Big Data Appliance по интерфейсу InfiniBand.
При всей внушительности характеристик комплексов Oracle, они по своим масштабам уступают крупнейшим известным практическим реализациям технологии Big Data. Так, для обработки результатов поиска Yahoo использует более 10 тыс. вычислительных узлов под управлением Linux, а Hadoop-система социальной сети Facebook способна в параллельном режиме анализировать 30 Пб сырых данных. Впрочем, для большинства компаний ресурсов Oracle Big Data Appliance будет, по-видимому, вполне достаточно. Есть ли у решения Oracle экономические преимущества перед многоузловыми системами на базе дешевых серверов стандартной архитектуры, оснащенных бесплатным свободным ПО? Для ответа на этот вопрос нужно в каждом случае проводить скрупулезные расчеты. Как сообщает ZDNet, стоимость одной стойки Oracle Big Data Appliance составляет 450 тыс. долл. Еще 54 тыс. придется ежегодно платить за техническую поддержку. Тем не менее главный вопрос, на который придется ответить потенциальным заказчикам, связан не со стоимостью решения, а с достигаемым экономическим эффектом на вполне конкретных задачах. Эффектом не умозрительным, а полученным в реальных проектах, которых пока, к сожалению, не так уж много.