Обработка огромных массивов пользовательских данных вызвала у компании Twitter такие серьезные затруднения, что ей пришлось купить другого разработчика, который помог социальной сети решить стоящие перед ней задачи.
Успех Twitter полностью зависит от того, насколько хорошо сервис справляется с обработкой данных, вводимых пользователями. А информации в социальной сети циркулирует немало: на сегодняшний день в базе данных хранится более 200 млн учетных записей, их владельцы ежедневно создают порядка 230 млн сообщений.
В июле прошлого года гигант социальных сетей купил компанию BackType, которая разработала программное обеспечение Storm, позволяющее анализировать потоки данных и миллионы лент Twitter. После приобретения Twitter опубликовала исходный код Storm, отказавшись от использования этого продукта в коммерческих целях.
Ценность программного обеспечения Storm для Twitter обусловлена возможностью идентификации популярных тем по мере развертывания их обсуждения в реальном времени на сайте компании. Storm используется, в частности, для расчета интенсивности совместного обращения пользователей к той или иной информации в режиме реального времени.
«Работа подобного рода требует по-настоящему интенсивных вычислений, которые выполняются при регистрации тысяч обращений к базе данных и миллионов записей, оставляемых пользователями», — отметил Натан Марц, ведущий разработчик Storm, разъяснивший особенности функционирования технологии на конференции, проводившейся в декабре 2011 года в Нью-Йорке компанией DataStax, производителем ПО для решения проблем Больших Данных.
На одной машине вычисление широты распространения информации заняло десять минут. Это время, по словам Марца, можно сократить до нескольких секунд. В компании, которая зарабатывает деньги на продаже рекламы, размещаемой на популярных страницах, быстрота выполнения операций имеет критически важное значение.
Многие организации, подобно Twitter, обнаруживают, что в запасе у них имеются огромные объемы данных, причем данные потенциально могут использоваться для увеличения прибыли и повышения эффективности (если информацию удастся проанализировать достаточно быстро). Эту концепцию, обязанную своим появлением ряду новых технологий, распространяемых, как правило, с открытым исходным кодом, часто называют Большими Данными.
«Лучшее понимание того, что интересует людей, и повышение эффективности использования данных позволяют добиться конкурентного преимущества, — отметил Аарон Батальон, технический директор электронного магазина LivingSocial, использующего платформы обработки данных наподобие Apache Hadoop для получения дополнительной информации о потребностях пользователей. — Дни, когда можно было создать продукт и он сразу начинал работать, уже прошли. Теперь для достижения успеха нужны идеи, их проверка, претворение в жизнь и использование данных и аналитических инструментов, помогающих понять, что работает, а что нет. Именно так мы и используем сегодня инфраструктуру Больших Данных».
Большие Данные становятся еще больше
В мае 2011 года консультационная компания McKinsey опубликовала отчет, в котором высказывались прогнозы в отношении порядка обработки данных организациями в предстоящие годы. Утверждалось, что ряд отраслей — в том числе здравоохранение, государственный сектор, розничная торговля и сфера производства — получат определенные преимущества благодаря быстрому анализу больших объемов данных.
Сбор и анализ транзакционных данных поможет организациям больше узнать о предпочтениях их клиентов. Эти сведения можно использовать для информационной поддержки продуктов и услуг и оперативного устранения организациями возникающих трудностей.
«Использование больших объемов данных станет ключевым условием конкурентоспособности и роста отдельных фирм, — говорится в отчете. — Большие Данные должны стать источником новой волны увеличения производительности труда и потребительского спроса».
Можно возразить, что Teradata, IBM, Oracle и ряд других компаний уже более десятка лет предлагают средства поддержки хранилищ данных, объем которых исчисляется терабайтами. Но сегодня данные собираются и хранятся в гораздо большем числе форматов и могут параллельно обрабатываться множеством серверов, что совершенно необходимо с учетом объемов анализируемой информации. Помимо полной поддержки информационных транзакций баз данных и отбора сведений, размещаемых в хранилищах данных, организациям приходится иметь дело с огромными объемами серверных системных журналов, различными формами данных, генерируемых машинами, комментариями клиентов, публикуемыми ими во внутренних и внешних социальных сетях, а также другими источниками неструктурированной информации.
«Традиционные системы обработки данных просто не в состоянии справиться с наплывом больших данных либо в силу своей неспособности управлять имеющимся многообразием информации (информация сегодня структурирована в гораздо меньшей степени из-за стремительного увеличения ее объемов), либо из-за недостаточной масштабируемости», — пояснил Эрик Бальдешвилер, технический директор компании Hortonworks, отделившейся от Yahoo и занимающейся распространением Hadoop.
«Такие данные демонстрируют экспоненциальный рост в соответствии с законом Мура», — отметил Курт Монаш из компании Monash Research. Закон Мура гласит, что число транзисторов, находящихся на подложке процессора, удваивается в среднем через 18 месяцев. Каждое очередное поколение процессоров в два раза превосходит по вычислительной мощности своих предшественников. Неудивительно поэтому, что мощность новых серверов также удваивается через каждые 18 месяцев, что позволяет им генерировать наборы данных большего объема.
«Подход Больших Данных отражает основные сдвиги, происходящие в области управления данными, — указал Джек Норрис, вице-президент компании MapR по маркетингу. — Ранее отобранные данные перемещались по сети в хранилище, где их впоследствии можно было анализировать. Но с увеличением объемов информации сеть превратилась в узкое место. Распределенные системы (такие как Hadoop) позволяют проводить анализ данных без их предварительного перемещения».
Вместо создания очищенных подмножеств пользовательской информации и ее помещения в хранилища данных для последующей обработки ограниченным набором заранее определенных способов программное обеспечение Больших Данных просто собирает генерируемую в организации информацию, а администраторы и аналитики сами решают, как впоследствии использовать эти данные. Таким образом, новые системы обладают большей масштабируемостью по сравнению с традиционными базами и хранилищами данных.
Интернет — источник развития Больших Данных
Во многих случаях на переднем крае совершенствования средств обработки Больших Данных оказывается какой-нибудь крупный поставщик интернет-услуг: Google, Amazon, Yahoo, Facebook или Twitter. Google и Yahoo наряду с остальными тоже приложили свою руку к развитию Hadoop. Разработчики Facebook, со своей стороны, первыми представили распределенную СУБД Apache Cassandra, также распространяемую с открытым кодом.
Проект Hadoop зародился в 2004 году по инициативе Google на основе технического описания инфраструктуры Google, предназначенной для анализа данных с использованием множества различных серверов и системы индексирования Bigtable. Система Bigtable предназначалась для внутреннего использования в Google, однако разработчик Дуг Каттинг, уже создавший ранее поисковый механизм с открытым кодом Lucene/Solr, выпустил версию с открытым кодом, назвав технологию именем игрушечного слона своего сына.
Одним из первых пользователей Hadoop стала компания Yahoo. Пригласив Каттинга, она проделала большую работу по совершенствованию этой технологии. «У Yahoo было много интересных данных, которые тем или иным образом пересекались друг с другом, но хранились при этом в отдельных системах», — вспоминает Каттинг, работающий сегодня в компании Cloudera, занимающейся распространением Hadoop.
Сегодня Yahoo является одним из крупнейших пользователей Hadoop. Технология, которую обслуживают здесь около 40 тыс. серверов, имеет множество различных применений. В кластерах Hadoop хранятся большие файлы журналов с информацией о действиях, выполненных пользователями. Помимо этого в кластерах Hadoop размещены сведения о рекламной активности, а также статьи и другие сведения, опубликованные Yahoo.
«Hadoop — отличный инструмент для концентрации и упорядочивания больших объемов данных перед их помещением в реляционные базы данных, — подчеркнул Монаш. — Эта технология особенно хорошо подходит для поиска шаблонов в больших наборах текста».
Еще одной технологией, предложенной поставщиком интернет-услуг, стала СУБД Cassandra. Каждая строка базы данных Cassandra может содержать до 2 млн информационных полей, что делает этот механизм удобным средством добавления данных в уже существующие учетные записи пользователей. При этом формат размещаемых данных заранее неизвестен.
Преимущество базы данных Cassandra в том, что ее можно распределять между множеством серверов, это позволяет организациям легко выводить свои базы данных за рамки одного сервера или даже небольшого серверного кластера.
«Технология Cassandra была разработана гигантом социальных сетей Facebook, которому понадобилась мощная распределенная СУБД для поддержки поисковых операций», — сообщил Джонатан Эллис, руководитель проекта Apache Cassandra и основатель компании DataStax, предлагающей профессиональную поддержку Cassandra.
Как и Yahoo, компания Facebook хотела использовать архитектуру Google Bigtable, позволяющую создать распределенную между множеством узлов структуру базы данных, представляющую собой объединение строк и столбцов. Ограничение Bigtable заключалось в том, что ее архитектура предусматривала наличие главного узла. Таким образом, все операции зависели от одного узла, координирующего операции чтения и записи на всех остальных узлах. Другими словами, в случае отказа единственного головного узла вся система становилась неработоспособной.
«Это было не лучшее решение, — признал Эллис. — Требовалось усовершенствовать его таким образом, чтобы при отказе одной машины все остальные продолжали нормально функционировать».
Эллис и его коллеги создали Cassandra на основе распределенной архитектуры Amazon Dynamo, которая была описана компанией Amazon в 2007 году. Технология Dynamo разрабатывалась Amazon для контроля за действиями миллионов клиентов электронного магазина, складывавших в корзину выбранные товары.
Архитектура Dynamo не зависела от главного узла. Любой узел мог принимать данные для системы в целом, а также отвечать на поступающие запросы. Данные распределялись между множеством серверов.
На пути к корпоративным системам
Отрадно, что многие инструменты, разработанные изначально поставщиками интернет-услуг, впоследствии стали доступны корпоративным клиентам в виде ПО с открытым кодом. Сегодня инструменты Больших Данных тестируются многими организациями, не имеющими отношения к крупным поставщикам интернет-сервисов. В тестировании принимают участие финансовые институты, телекоммуникационные компании, правительственные агентства, поставщики коммунальных услуг, представители розничной торговли и энергетические предприятия.
«Все мы видим неизбежность дальнейшего развития Hadoop и внедрения технологий Больших Данных, — подчеркнул Бальдешвилер. — Они могут оказаться полезными для самых разных клиентов».
Как же использует организация данные, сгенерированные на ее компьютерах и размещенные в социальных сетях?
Как ни странно, построение необходимой инфраструктуры не вызывает у ИТ-руководителей особых сложностей. Компании Cloudera, Hortonworks, MapR и прочие уже перевели технологии Больших Данных на коммерческие рельсы, упростив их развертывание и управление ими.
Главные же трудности, по мнению Джеймса Кобьелуса, аналитика Forrester Research, будут связаны с поиском специалистов по анализу данных.
«Предприятиям необходимо сконцентрироваться на научной организации управления данными, — подчеркнул Кобьелус. — Нужно нанимать на работу специалистов в области статистического моделирования, текстового анализа, анализа ожиданий. Технологии Больших Данных основаны на строгом моделировании данных. Основными приложениями, которые понадобятся для развития Больших Данных, станут статистические модели прогнозирования и тестовые аналитические модели».
Многие полагают, что рост популярности Больших Данных приведет к появлению нового класса специалистов — аналитиков данных (data scientist). Эти люди должны обладать глубокими знаниями в области математики и статистики и хорошо представлять себе характер использования технологий Больших Данных.
Вполне вероятно, что мы столкнемся с дефицитом таких специалистов. По оценкам компании McKinsey, к 2018 году только в США будет не хватать 140–190 тыс. работников, обладающих глубокими аналитическими знаниями, а также 1,5 млн менеджеров и аналитиков, умеющих принимать эффективные решения на основе анализа Больших Данных.
«Несмотря на указанные ограничения, организациям необходимо продвигаться вперед, повышая эффективность своей деятельности и укрепляя конкурентоспособность, — указал Норрис. — В качестве примера здесь можно привести компанию Google, которая вышла на рынок поисковых механизмов, когда конкурентная среда там уже сформировалась, и всего за два года сумела занять доминирующие позиции в этом сегменте. Успех Google во многом был обусловлен преимуществами ее базовой архитектуры. Сегодня Большие Данные приводят к смене привычной парадигмы и создают условия для новых масштабных изменений».