Если провести анкетирование среди ИТ-специалистов с одним вопросом: «Что такое данные?», то большая часть полученных ответов сведется к очевидной формуле: "Данные — это 'мешок битов и байтов'». Еще недавно такую интерпретацию можно было принять, но в нынешних условиях такой ответ безнадежно устарел — понимание отдельной роли данных, осознается их значение как носителя самостоятельной ценности.

В 2010 году в Economist вышла статья «Данные, везде данные» (Data, data everywhere), в которой были приведены выказывания Джеймса Кортада, исследователя из корпорации IBM, автора нескольких книг о роли информации в обществе: «Мы вступили в принципиально новый период существования, потому что никогда не было так много информации» и Джоя Хеллерстайна, профессора Калифорнийского университета в Беркли, специалиста по базам данных: «Это индустриальная революция данных». Вряд ли стоит пока говорить о полномасштабной революции, скорее ситуацию можно назвать предреволюционной — проблема Больших Данных поставлена, но далека от решения. Неспособность работы с такими данными признана в качестве одной из основных причин нынешнего экономического кризиса – финансовые институты использовали устаревшие модели, которые не в состоянии переварить обрушившийся на них поток данных, и, как следствие, не смогли реально оценить риски. Крейг Манди, руководящий исследованиями и стратегией в корпорации Microsoft, отмечает: «Экономика, ориентированная на данные, находится в зародышевом состоянии, и пока мы можем увидеть только ее будущие контуры, но ее техническая, инфраструктурная сторона и даже бизнес-модель еще недостаточно поняты». Говорят о «второй промышленной революции в ИТ», о вступлении в «эпоху данных» (Age of Data), а иногда новый мир называют «миром, движимым данными» (Data-Driven World) и т. д.

Данные отдельно, приложения отдельно

Wolfram Alpha — знающий компьютер

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

Леонид Черняк

Для инженеров рассуждения о данных со стороны аналитиков, экономистов и других специалистов по общим вопросам звучат не более чем заклинания: сколько бы те ни писали о данных на абстрактном уровне, реальная форма их представления и способы работы с ними по существу не меняются, поэтому актуально создание современных технологий для работы с упомянутыми мешками битов и байтов. Новизна современных рассуждений в том, что осознание отдельной роли данных подталкивает к их отделению от приложений. Однако, для того чтобы данные могли рассматриваться как отдельная сущность, необходимо преодолеть сложившееся представление о тождественности кода и данных, корни которого уходят на многие годы назад и упираются в «пороки» фон-неймановской схемы машины с хранимой программой, безусловным достоинством которой казалась присущая ей возможность отношения к кодам как к данным и наоборот (Code is data, data is code). При программировании на машинных языках она давала неоспоримые преимущества с точки зрения экономии памяти и повышения быстродействия, а сегодня эти важные в прошлом статьи расходов потеряли свое значение. Тем не менее вопрос об отношениях между данными и кодами до  конца не разрешен, а тех, кому покажется любопытной  полемика о том, что первично  -  данные или способы работы с ними,  можно адресовать к статьям Википедии: http://c2.com/cgi/wiki?SeparationOfDataAndCode и http://c2.com/cgi/wiki?DataAndCodeAreTheSameThing

В начале прошлого десятилетия стало ясно, что универсализм схемы фон Неймана, уравнивающий коды и данные, ограничен размерами кодов и размерами данных, а для дальнейшего развития крупных информационных систем необходимо сепарировать данные и приложения, тогда же появилось новое направление архитектура данных (Data Architecture). Архитектура данных рассматривалась как совокупность методов проектирования и формирования ресурсов данных, как одна из составляющих архитектуры предприятия (Enterprise Architecture) наряду с тремя другими: архитектурой приложений (Application Architecture), архитектурой бизнеса (Business Architecture) и интеграционной архитектурой (Integration Architecture). Однако все рассуждения о природе и роли данных были недостаточно конкретны и не получили заметного развития вплоть до появления сервисных подходов.

Данные как сервисы

Термин DaaS (Data as a Service) появился позже других двугорбых аббревиатур и вплоть до недавнего времени был менее заметен, чем другие *aaS, например такие, как IaaS, SaaS и PaaS, но совсем недавно интерес к нему обострился. Изменения начались год-полтора назад почти одновременно с восходом феномена Big Data и параллельно с развитием облачных технологий.

Чтобы лучше понять место DaaS на общем фоне, требуется выстроить единую систему облачных понятий, или, более точно, создать онтологию в компьютерном контексте этого слова, формально описав компоненты и связи между ними. Известно несколько попыток онтологического представления устройства облаков, пожалуй, наиболее удачная принадлежит группе сотрудников Калифорнийского университета Беркли и исследовательского центра IBM T.J. Watson Research Center, опубликованная в совместном труде Toward a Unified Ontology of Cloud Computing. Разнообразные *aaS в этих работах сведены в одну пятиуровневую модель, распространяющуюся от аппаратного до прикладного уровня (см. рисунок).

 

DaaS: данные по требованию
Онтологическая модель облаков

 

Облачная аппаратная инфраструктура (Hardware as a Service, HaaS) может быть реализована в форме глобальных, частных или гибридных облаков. Управляющее ПО обычно состоит из гипервизора, монитора виртуальных машин и ПО связующего слоя для управления кластерными конфигурациями. Облачная программная инфраструктура служит для предоставления используемых ресурсов двум верхним уровням — на рисунке показано, что эта посредническая роль не обязательно принадлежит PaaS, и приложения могут напрямую обращаться к управляющему ПО, это проще и в некоторых случаях эффективнее, но менее универсально.

Облачная программная инфраструктура состоит из трех компонентов: IaaS (Infrastructure as a Service), DaaS (Data as a Service) и CaaS (Communications as a Service). Первый — пул виртуальных машин, а CaaS — надстройка над коммуникационной системой, обеспечивающая требуемый уровень обслуживания (Service Level Agreement, SLA). С DaaS дело обстоит несколько сложнее в силу того, что данные не имеют одного или нескольких единообразных представлений, как, скажем, образцы виртуальных машин.

Облачная программная среда (Platform as a Service, PaaS) предоставляет облачные ресурсы приложениям посредством прикладных программных интерфейсов. При необходимости приложения могут обходить этот уровень, но с потерей универсальности. Облачные приложения могут быть созданы пользователем или потребляться в форме сервисов (Software as a Service, SaaS).

Описанная онтология демонстрирует место DaaS в общей облачной инфраструктуре.

Модель DaaS

В приложении к данным, размещаемым в облаках и предоставляемым в виде сервисов, можно встретить несколько близких технологических решений, в том числе Database as a Service (DBaaS), Cloud Storage, Hosted Database Service, и, скорее всего, найдется еще что-то.

Для представления DaaS можно предложить четырехуровневую модель. В ее основании находятся системы хранения данных — это могут быть хорошо известные решения, используемые в частных облаках, или глобальные облачные системы хранения, такие как Amazon S3, AT&T Synaptic Storage, EMC Atmos Online, Mezeo, Nirvanix, Rackspace CloudFiles и др., но гораздо интереснее следующие два уровня, разделяющие данные и приложения.

DBaaS — тип решений, используя который провайдер может предоставлять функционал баз данных нескольким потребителям. От традиционных решений его отличает то, что развертывание и последующий менеджмент конкретного экземпляра СУБД осуществляются по запросу пользователя на принципах самообслуживания, а провайдер обеспечивает заданный уровень обслуживания с оплатой по мере использования ресурсов. Для того чтобы эти ресурсы были доступны, DBaaS снабжаются каталогами сервисов, содержащими все необходимые атрибуты, а форму и содержание этих каталогов определяет провайдер.

Строгой классификации множества возможных вариантов реализации DBaaS пока нет, но есть полюса, вокруг которых концентрируются отличающиеся между собой подходы. Один предполагает использование какой-то стандартной базы данных (MySQL, DB2 и т. п.), но резидентной не на определенном сервере, а в частном или глобальном облаке. Такую группу подходов еще называют Hosted Database Service, а основное отличие от классического решения состоит в расположении сервера СУБД и в повременном способе оплаты. Эту группу еще называют Do-it-Yourself, подчеркивая, что в данном случае пользователь сам выбирает требуемую ему часть облака: количество процессорных ядер, объем хранения, уровни резервирования данных и обеспечения безопасности и т. п. Примером реализации хостируемой DBaaS может служить ресурс Oracle Database Cloud Services с СУБД Oracle 11gR2, предоставляющий услуги Oracle, поддерживаемые по протоколу передачи состояния представления REST (Representational State Transfer), соответственно эти требованиям называют RESTful. В качестве платформы Oracle Database Cloud Services использована система Exadata Database Machine X2-2. Альтернативой Do-it-Yourself является использование полнофункциональной DBaaS; иначе говоря, здесь в виде сервисов предлагается собственно база данных, а не та или иная платформа для нее. Первый вариант можно назвать ручным, а второй автоматическим, по аналогии с автомобильными коробками передач. Параллель достаточно точная — если выбран первый, то управление на стороне пользователя, от которого требуется наблюдать за работой, следить за соблюдением надежности сервисов и эластичности, обеспечивающей масштабирование. Если выбирается второй вариант, то пользователь от всего этого свободен.

Одна и та же база MySQL может быть реализована в обоих вариантах, на разных платформах, например Amazon Cloud и Heroku. Если мы возьмем Amazon Cloud, то, идя по пути Do-it-Yourself, достаточно арендовать нужное количество узлов нужного типа в Amazon EC2 и инсталлировать на них MySQL, платить придется только за два ресурса — узлы и полосу пропускания. По этой причине этот вариант недорог, но на пользователя ложится забота о масштабировании и репликации данных, а также обновление ПО. Если же выбрать MySQL в Amazon Сloud и как опции Amazon Relational Database Service (RDS) и Xeround Cloud Database, то все эти хлопоты берет на себя облако, но такой вариант дороже.

Опыт использования реляционных СУБД в DBaaS показал, что они не соответствуют задачам, стоящим перед DBaaS, поэтому сейчас несколько компаний разрабатывают собственные специализированные базы.

Компания Akiban Technologies развивает MySQL в направлении повышения масштабирования — разработана собственная технология группировки таблиц (Table-Grouping), позволяющая уменьшить нагрузку на процессор и снизить количество операций ввода-вывода при росте сложности и размеров баз. В основе Table-Grouping лежит новая физическая структура таблиц, но при этом сохраняются все преимущества реляционной модели, в том числе соответствие модели ACID (Atomicity, Consistency, Isolation, Durability) и полная поддержка SQL.

Компания Clustrix производит отказоустойчивую кластерную систему Clustered Database System (CDS), отвечающую модели ACID и поддерживающую SQL. Особенность ее движка Clustrix Sierra Database Engine (Sierra) в максимальном распараллеливании и множестве одновременно выполняемых запросов. Основное отличие системы в способности фрагментировать и обеспечивать локальное автономное исполнение запросов, основываясь на преимуществах кластерной архитектуры. За счет того, что множество фрагментированных запросов исполняется на множестве узлов, снимается проблема масштабирования. Sierra представляет собой распределенную вычислительную среду, включающую распределенный компилятор запросов, параллельную среду исполнения и специализированное хранилище данных на твердотельных дисках.

Оригинальность Hadapt Adaptive Analytic Platform, предлагаемой компанией Hadapt, состоит в объединении Apache Hadoop с технологиями реляционных СУБД, то есть наряду с преимуществами, полученными благодаря реализации MapReduce, Hadapt поддерживает еще и SQL. Таким образом, продукт Hadapt является общей единой платформой для задач, где, казалось бы, требуются две раздельные системы — Hadoop для неструктурированных данных и реляционная СУБД для структурированных. Комбинация двух средств снижает стоимость и повышает производительность.

СУБД NuoDB, предлагаемая одноименной компанией, обеспечивает поддержку SQL, но не является в полном смысле реляционной СУБД — ее отличает способность координировать одновременную работу множества узлов над одной базой. СУБД построена на принципах битовых потоков BitTоrrent, известных по пиринговым сетевым протоколам, используемым для кооперативного обмена файлами через Интернет. Поэтому в NuoDB данные, индексы, сведения о прохождении транзакций распределены по множеству узлов. Результирующее состязание данных достигается в результате совместных действий разных узлов, а отход от традиций реляционных СУБД позволил лучше адаптироваться к работе в динамической инфраструктуре облаков.

СУБД RethinkDB компании RethinkDB создавалась специально для использования тех преимуществ SSD, которыми не могут воспользоваться обычные базы, оптимизировнные под HDD, однако оказалось, что ее можно причислить и к сообществу NoSQL. Главное преимущество RethinkDB в скорости работы — она на порядок выше, чем у конкурентов.

Собственно DaaS

Третья опора компьютинга

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

Леонид Черняк

Направление DaaS поддерживается компаниями — провайдерами данных, которые ищут данные, очищают их, сортируют и предоставляют пользователям. Первой на этот путь вступила компания Factual, созданная в 2007 году Джилом Элбацем, получившим известность благодаря своей сделке с Google в 2005 году, когда он продал свою собственную компанию Applied Semantics более чем за 100 млн долл., а теперь доставшийся Google продукт AdSense приносит корпорации 28% ее прибыли. На этот раз он руководствовался простой идеей сделать нечто вроде Flickr, но для данных. Напомним, что Flickr — один из первых сервисов Web 2.0, предназначенный для хранения и дальнейшего использования цифровых фотографий. Элбац решил сделать открытый репозиторий, куда можно помещать самые разнообразные данные с возможностью их изменения и дополнения. Сегодня диапазон данных в Factual варьируется от игр и развлечений до информации из госучреждений. Доступ к этим данным осуществляется в ручном режиме или с использованием открытого API.

В штате Factual всего 30 сотрудников, однако уже сейчас многие издания, например Newsweek, потребляют данные из хранилищ Factual, а не собирают их самостоятельно. В амбициозные планы Factual входит «либерализация мира данных», а ставка — рынок размером в 100 млрд долл. Возможно, компании типа Factual со временем займут такое же место, что и крупные информационные агентства наподобие CNN или Bloomberg.

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

Было бы странно, если бы новый бизнес остался в стороне от Google, ответом этой компании стала система сервисов Google Squared, которая выдает в ответ на запросы пользователей табличные данные. Иногда пытаются сравнить Google Squared с Wolfram Alpha, что ошибочно, поскольку детище Стивена Вольфрама пытается работать не с данными, а со знаниями.