=Paper=
{{Paper
|id=Vol-1297/201-210_paper-29
|storemode=property
|title=Комбинированная виртуально-материализованная среда интеграции больших неоднородных коллекций данных
(Combined Virtual and Materialized Environment for Integration of Large Heterogeneous Data Collections)
|pdfUrl=https://ceur-ws.org/Vol-1297/201-210_paper-29.pdf
|volume=Vol-1297
|dblpUrl=https://dblp.org/rec/conf/rcdl/StupnikovV14
}}
==Комбинированная виртуально-материализованная среда интеграции больших неоднородных коллекций данных
(Combined Virtual and Materialized Environment for Integration of Large Heterogeneous Data Collections)
==
Комбинированная виртуально-материализованная среда
интеграции больших неоднородных коллекций данных
© С. А. Ступников ©А. Е. Вовченко
ИПИ РАН,
Москва
ssa@ipi.ac.ru alexey.vovchenko@gmail.com
оперирования данными, объемы которых выходят за
Аннотация рамки возможностей технологий баз данных,
В работе рассматривается архитектура развивавшихся в последние десятилетия
комбинированной виртуально- (преимущественно реляционных). Необходимы
подходы, позволяющие справляться с
материализованной среды интеграции
неоднородных коллекций данных разнообразием моделей данных (включая
различного вида (структурированных, неструктурированные и слабоструктурированные
данные), метаданных, семантики данных.
слабоструктурированных и
неструктурированных). Необходимость К моделям данных, появившимся в последнее
поддержки двух различных видов время, относятся разнообразные NoSQL-модели:
интеграции объясняется тем, что как документные модели (системы SimpleDB, MongoDb,
виртуальный, так и материализованный CouchDB), модели с колоночным хранением
подходы к интеграции имеют свои (системы HBase, HyperTable, Cassandra), модели
достоинства и недостатки. Виртуальная «ключ-значение» (системы Voldemort, Riak, Redis,
интеграция осуществляется с Scalaris). Развиваются онтологические и
использованием технологии предметных семантические модели, такие, как семейства RDF и
посредников. Материализованная OWL; графовые модели (системы Neo4j, Dex,
интеграция реализуется с использованием GraphDB, HyperGraphDB, Trinity, Pregel); модели,
свободно распространяемой платформы основанные на многомерных массивах – ММ-
распределенного хранения и обработки модели (SciDB).
данных Hadoop; а также системы Методы создания унифицированного
организации реляционных хранилищ представления различных видов нетрадиционных
данных над Hadoop, в качестве которой моделей в канонической информационной модели
могут использоваться платформы Big SQL (общем языке, унифицирующем языки
или Hive. разнообразных моделей данных) в последнее время
Работа выполнена при поддержке РФФИ активно исследовались в ИПИ РАН. Были
(гранты 13-07-00579, 14-07-00548) и рассмотрены подходы к унификации моделей
Президиума РАН (Программа данных различных классов: семантических (OWL
фундаментальных исследований [10], RDF [3]), графовых [5], ММ-моделей [4],
Президиума РАН № 16 «Фундаментальные NoSQL-моделей [2]. В качестве канонической
проблемы системного программирования»). модели рассматривался язык СИНТЕЗ [11],
поддерживающий комбинированную
1 Введение слабоструктурированную (фреймовую) и объектную
модель данных.
Новая парадигма [24] в науке и информационных
Для поддержки новых моделей данных
технологиях, доминирующая в последнее время,
создаются системы управления данными,
основывается на исследовании данных (data
обладающие масштабируемостью, высокой
exploration). Роль данных особо подчеркивается и
доступностью, возможностью разбиения коллекций
становится критической. Объемы данных
данных произвольным образом на разделы для
фактически во всех областях деятельности растут со
параллельной обработки.
временем экспоненциально. Поэтому новая
парадигма требует создания методов и средств Растущая популярность использования
слабоструктурированных баз данных (в различных
Труды 16-й Всероссийской научной конференции видах NoSQL) наряду с реляционными базами, в
«Электронные библиотеки: перспективные методы и совокупности с технологиями программирования
технологии, электронные коллекции» — RCDL-2014, Hadoop и MapReduce, обеспечивающими
Дубна, Россия, 13–16 октября 2014 г. параллельную обработку огромных массивов
201
слабоструктурированных данных, объясняется данных, подлежащие интеграции. В процессе
множеством фактических и потенциальных загрузки происходит преобразование данных из
применений. Например, развитие Веб-приложений, схемы коллекции в общую схему хранилища. При
социальных сетей, сенсорных сетей, финансовых и необходимости, хранилища могут
торговых приложений, интенсивная работа с масштабироваться на большие объемы данных (хотя
данными в науке (в науках о Земле, в это требует соответствующих материальных затрат).
биоинформатике), и пр. требуют использования Хранилища предоставляют удобную и эффективную
данных, которые с трудом поддаются частичной платформу преобразования и интеграции данных, а
структуризации. Твиты и посты в блогах являются также решения сложных аналитических задач над
включают слабоструктурированные текстовые данными.
отрывки, изображения и видео-ролики. Материализованная интеграция реализуется в
Преобразование такого контента в комбинированной архитектуре с использованием
структурированный формат для семантического свободно распространяемой платформы
анализа и поиска является трудной задачей, распределенного хранения и обработки данных
имеющей целью отображение структур и семантики Hadoop [27]; а также системы организации
данных в форму, «понимаемую» компьютером для реляционных хранилищ данных над Hadoop (WR-
извлечения информации из данных. Hadoop для краткости), в качестве которой могут
Данная работа относится к области использоваться, например, платформы Big SQL [22]
конструирования средств поддержки систем с или Hive [9].
интенсивным использованием данных. Методы В данной статье рассматриваются основные
унификации моделей данных образуют формальную принципы построения комбинированной
базу работы. виртуально-материализованной архитектуры и
Целью работы является разработка и реализация подходы к ее реализации. Создание программных
комбинированной виртуально-материализованной средств реализации рассматриваемой архитектуры
архитектуры среды интеграции неоднородных является предметом дальнейшей работы.
коллекций данных различного вида Ближайшей задачей является выбор конкретной
(структурированных, слабоструктурированных и системы WR-Hadoop, одним из вариантов которой
неструктурированных). Такая среда должна является поддержка обеих систем Big SQL и Hive.
поддерживать как виртуальную, так и Статья организована следующим образом. В
материализованную интеграцию коллекций данных, разделе 2 рассматриваются основные черты
представленных как в традиционных, так и комбинированной архитектуры. В разделе 3
нетрадиционных моделях данных. иллюстрируются преобразования коллекций,
Необходимость поддержки двух различных представленных в нетрадиционных моделях данных,
видов интеграции объясняется тем, что как в их интегрированное представление в модели
виртуальный, так и материализованный подходы данных сопряжения Hadoop – среда посредников. В
интеграции имеют свои достоинства и недостатки. разделе 4 рассматривается пример задачи
Виртуальная интеграция осуществляется с интеграции неоднородных коллекций данных в
использованием технологии предметных комбинированной среде.
посредников [12], образующих промежуточный
слой между пользователем (приложением) и 2 Архитектура комбинированной
неоднородными информационными ресурсами. При виртуально-материализованной среда
этом данные из ресурсов не материализуются в
интеграции коллекций данных
посреднике. К достоинствам виртуальной
интеграции относится то, что развертывание и Архитектура комбинированной среды
поддержка системы виртуальной интеграции интеграции неоднородных коллекций данных
значительно дешевле развертывания и поддержки (рис. 1) основана на существующей архитектуре
системы материализованной интеграции предметных посредников [12].
(хранилища данных) исходя как из временных, так и Основные черты архитектуры выглядят
из материальных затрат. Обычно системы следующим образом:
виртуальной интеграции используются для
интеграции ресурсов, данные из которых трудно концептуальная схема данных, предлагаемая
преобразовывать и (или) владельцами которых пользователю системой интеграции
являются разные лица. Однако, данные в (посредником), формируется независимо от
интегрируемых ресурсах не должны быть слишком интегрируемых ресурсов;
большими, либо запросы к ресурсам должны ресурсы, релевантные концептуальной схеме,
обладать достаточной степенью селективности для регистрируются в посреднике: их схемы
того, чтобы объем данных, передаваемых из связываются с концептуальной схемой при
ресурса, не был слишком велик. помощи представлений (взглядов).
Определение взглядов осуществляется
При материализованной интеграции
полуавтоматически и требует привлечения
предполагается создание хранилища данных
экспертов;
(warehouse), в которое загружаются коллекции
202
Рисунок 1. Архитектура комбинированной среды интеграции неоднородных коллекций данных
пользователь задает программы (запросы) над
2.1 Платформа для материализованной
концептуальной схемой. Эти запросы
переписываются в посреднике с интеграции ресурсов в комбинированной
использованием взглядов в частичные архитектуре
подзапросы в терминах конкретных ресурсов. Для материализованной интеграции ресурсов в
Переписывание осуществляется в языке комбинированной архитектуре необходима
правил канонической модели посредников; масштабируемая платформа манипулирования
взаимодействие ресурсов и посредника большими разноструктурированными данными
реализуется при помощи адаптеров, (ПМБРД). В качестве такой платформы в данной
располагающихся между посредником и работе выбрана связка системы Hadoop и системы
ресурсами. Адаптеры преобразуют запросы организации реляционных хранилищ данных над
из языка правил канонической модели в язык Hadoop – WR-Hadoop (в качестве которой могут
ресурса, а также преобразуют результат использоваться, например, системы Big SQL [22]
исполнения запроса из формата ресурса в или Hive [9]).
формат посредника.
Платформа Apache Hadoop [7][27] была впервые
Таким образом, для виртуальной интеграции представлена в 2005 г. в составе проекта Apache
ресурсов, основанных на традиционных и Software Foundation и представляет собой набор
нетрадиционных моделях, необходимо построение программных средств распределенного хранения и
адаптеров соответствующих моделей данных. В обработки больших объемов данных. Платформа
области построения адаптеров для среды Hadoop предназначена для развертывания на
предметных посредников накоплен большой опыт, вычислительных кластерах и основана на
разработаны общая архитектура адаптеров и методы распределенной файловой системе HDFS (Hadoop
конструирования адаптеров [1], реализованы Distributed File System). В состав кластера входят
адаптеры реляционной и объектно-реляционной узлы, хранящие фрагменты файлов. Теоретически
моделей, адаптер веб-сервисов, XML-адаптер и могут быть сотни и тысячи таких узлов, основанных
другие. Формальной базой для построения на недорогих вычислительных платформах
адаптеров служат отображения моделей данных (commodity hardware). Для обеспечения высокой
ресурсов в каноническую модель [6], разработанные надежности поддерживается избыточность путем
в результате унификации моделей ресурсов.
203
создания копий фрагментов между узлами. С точки В комбинированной архитектуре ПМБРД
зрения пользователя такая структура выглядит как рассматривается как еще один вид ресурсов,
обычная древовидная файловая система. подлежащий виртуальной интеграции. Интеграция
Масштабируемость платформы на значительные становится двухслойной: материализованная
объемы данных достигается за счет параллельной интеграция осуществляется внутри ПМБРД,
обработки фрагментов на узлах с использованием виртуальная – на уровне предметных посредников.
программной модели параллельных распределенных Виртуальной интеграции при этом могут подлежать
вычислений MapReduce [21]. Модель MapReduce ресурсы
позволяет разработчикам приложений данные из которых сложно или невозможно
абстрагироваться от сложностей работы материализовать по разным причинам и (или)
распределенных программ, связанных с модель данных включает специфические
распределением данных, планированием нагрузки и операции и алгоритмы, адаптация которых в
обеспечением отказоустойчивости. реляционной модели сложна и (или)
Платформы Hive [9] и Big SQL [22] представляют неэффективна. К таким моделям относятся,
собой решения для организации реляционных например, графовые, ММ-модели и т.д.
хранилищ данных, разработанные на основе среды Для включения ПМБРД Hadoop/WR-Hadoop в
Hadoop. В них реализованы известные структуры среду предметных посредников необходимо
реляционных баз данных – таблицы, столбцы, разработать адаптер для WR-Hadoop (Hive или Big
разделы. Платформы поддерживают реляционные SQL) в соответствии с подходом, изложенным в
языки манипулирования данными (HiveQL и Big работе [1]. При этом модель данных WR-Hadoop
SQL соответственно) для работы в выступает в роли модели сопряжения ПМБРД со
неструктурированной среде Hadoop: моделью средой предметных посредников. Модель данных
данных Hive является стандарт SQL92 с некоторыми WR-Hadoop должна быть унифицирована
дополнениями, моделью данных Big SQL – (отображена в каноническую модель посредников).
практически полный стандарт SQL 2011. Концептуально унификация модели данных WR-
Фактически, системы проецируют реляционную Hadoop опирается на проведенную при
структуру на данные, хранящиеся в Hadoop и конструировании реляционного адаптера [1]
предоставляют возможность исполнения SQL- унификацию реляционной модели. В конструкцию
подобных запросов на больших наборах данных реляционного адаптера будут внесены два важных
путем компиляции их в программы MapReduce, усовершенствования:
исполняемые в среде Hadoop.
поддержка объектных таблиц;
Система Hive является свободно поддержка сложных (complex) типов данных,
распространяемым решением, а Big SQL – таких, как массивы (ARRAY), структуры
проприетарным, распространяемым в составе (STRUCT) и отображения (MAP).
продукта IBM InfoSphere BigInsights [16].
Следует отметить, что системы Hive и Big SQL 2.2 Языки и инструменты для материализованной
не в полной мере реализуют функции хранилищ интеграции в комбинированной архитектуре
данных (warehouses). В частности, напрямую не
Материализация в ПМБРД осуществляется
поддерживается процесс извлечения-
путем помещения в Hadoop-кластер файлов,
преобразования-загрузки (ETL). Для реализации
экспортированных из информационных ресурсов.
недостающих функций в комбинированной
Файлы могут быть экспортированы в различных
архитектуре предлагается использование
открытых форматах: JSON, XML, CSV, в виде
декларативно-императивных языков высокого
текстовых файлов, а также в бинарном формате
уровня над Hadoop (раздел 2.2).
JSON (JSON binary). Материализации, как и
Таким образом, в комбинированной архитектуре виртуальной интеграции, могут подлежать данные,
обеспечивается возможность распределенного представленные в различных традиционных и
хранения, преобразования и интеграции больших нетрадиционных моделях. Решение о том, какой
разноструктурированных данных (при помощи способ интеграции следует применить для
Hadoop), а также унифицированный взгляд на конкретного ресурса, следует принимать исходя из
материализованные данные через реляционную целей системы интеграции (например, характерных
модель (при помощи Hive или Big SQL). запросов пользователя), эффективности, стоимости
Потенциально, в качестве ПМБРД может быть и т.д.
выбрана и другая платформа: например, вместо Преобразование данных к реляционному виду
Hadoop могут быть использованы такие системы, для последующей интеграции производится при
как Apache Spark [8, 28], GraphLab [20, 25], Disco помощи программ на языке Jaql.
[14] и др. Однако, Hadoop в настоящее время
Jaql представляет собой язык запросов и
является наиболее распространенной и
сценариев, разработанный IBM и использующий
универсальной системой, поддерживающей модель
формат обмена данными JavaScript Object Notation
вычислений MapReduce.
(JSON [19]). Jaql поддерживает произвольную
глубину вложенности структур данных, является в
204
высокой степени функционально-ориентированным, процессов, очистки данных, предлагаются в
чрезвычайно гибким, и хорошо применимым для составах программных решений ведущих
работы со слабоструктурированными данными. разработчиков баз данных. К таким решениям
Язык ориентирован на прозрачное применение относится, например, IBM InfoSphere Information
модели программирования MapReduce: Server [17]. Этот программный продукт
декларативно-императивные запросы Jaql потенциально может быть использован в
переписываются в последовательность программ комбинированной архитектуре для
MapReduce, исполняемых в среде Hadoop. материализованной интеграции. При этом в
Основными структурами данных, подлежащими качестве хранилища может быть использована
манипулированию при помощи Jaql, являются платформа IBM InfoSphere Warehouse [18]
объекты (коллекции пар <имя, значение>) и (являющаяся частью СУБД DB2). Однако,
массивы (упорядоченные списки значений). Information Server предлагает лишь ограниченное
Поддерживается множество встроенных функций количество относительно простых методов
над массивами и объектами. Язык предоставляет выделения, отображения и слияния сущностей.
широкий набор операций преобразования данных Недостаточность таких средств была осознана
(фильтрация, группировка, сортировка, соединение, компанией IBM, в результате чего и появился язык
объединение и т.д.). HIL.
Язык Jaql поставляется в составе InfoSphere Рассматриваемая в данной статье
BigInsights [16] – программной платформы комбинированная среда интеграции нацелена, в
обработки больших данных, основанной на Hadoop. частности, на исследование методов интеграции
больших разноструктурированных данных. Этим и
мотивирован выбор в качестве ПМБРД платформы
Итак, преобразованные к реляционному виду Hadoop/WR-Hadoop и комбинации языков Jaql и HIL
данные сохраняются в формате JSON. в качестве инструментов материализованной
Преобразования коллекций, представленных в интеграции.
нетрадиционных моделях данных, в их
интегрированное представление в реляционной 3 Преобразование коллекций данных
модели данных иллюстрируются в разделе 5.
Cложные потоки обработки данных (очистки,
нетрадиционных моделей в
устранения дублирования, слияния) и их интеграции интегрированное представление
реализуются с использованием комбинации языков
Jaql и HIL 1 . Рассмотрим пример коллекции данных,
представленной в модели данных графовой СУБД
Декларативный язык HIL (High-level Integration Neo4j [26]. Небольшой подграф базы данных о
Language) разработан IBM для программирования фильмах, включающий основные виды вершин,
сложных потоков обработки данных (ETL), ребер и атрибутов, изображен на рис. 2.
агрегирующих факты из больших коллекций
разноструктурированной информации в целевые Вершины графа соответствуют фильмам и
коллекции унифицированных сущностей. людям, ребра графа соответствуют участию людей в
создании фильма как актеров (CAST) или режиссера
Язык позволяет реализовать методы извлечения, (DIRECTS). Люди характеризуются именем (name),
сопоставления и группирования, разбора, фильмы – названием (title) и годом создания (year),
связывания, устранения дублирования роли актеров – именем персонажа (character).
(deduplication) различных разноструктурированных Вершины и ребра графа обладают уникальными
представлений информации об одних и тех же идентификаторами.
сущностях реального мира (entity resolution). HIL
также позволяет реализовать методы и операции
слияния (интеграции) данных об одних и тех же
сущностях реального мира и их связей,
представленных в разных коллекциях,
образованных в процессе разрешения сущностей
(включая реализации стратегий и устранения
конфликтующих данных, операции поглощения и
слияния данных). Программы на HIL компилируется
в Jaql, что позволяет использовать HIL для
преобразования и интеграции данных в Hadoop.
Следует отметить, что методы
материализованной интеграции, организации ETL-
1
Вопросы выделения сущностей и интеграции Рисунок 2. Пример графа в модели данных Neo4j
разноструктурированной информации при помощи
программ на языке HIL выходят за рамки данной статьи.
205
Графовая БД системы Neo4j может быть (filter) и преобразования элементов массивов
сериализована в формате JSON. Представление для (transform), связанные оператором организации
вышеприведенного графа в JSON выглядит потоков данных (->).
следующим образом:
[{ "id": 1, "type": "node", "labels": ["MOVIE"], В качестве еще одного примера коллекции
"properties": {"title": "Lost in translation", "year": 2003} },
данных рассмотрим базу знаний DBpedia
{ "id": 2, "type": "node", "labels": ["PEOPLE"],
"properties": {"name": "Bill Murray"} }, (http://dbpedia.org/). Коллекция содержит
{ "id": 3, "type": "node", "labels": ["PEOPLE"], структурированную информацию, извлеченную из
"properties": {"name": "Sofia Coppola"} }, свободной энциклопедии Википедия. Данные в
{ "id": 4, "type": "relationship", коллекции представлены в модели RDF. В качестве
"start_node": 1, "end_node": 2, примеров данных рассмотрим RDF-спецификации
"relationship_type": "CAST", города Кембридж (Великобритания) и его
"properties": {"character": "Bob Harris"} }, представителя в Парламенте Эндрю Лэнсли.
{ "id": 5, "type": "relationship", Спецификации представлены в формате JSON:
"start_node": 3, "end_node": 1,
"relationship_type": "DIRECTS" }] { "http://dbpedia.org/resource/Cambridge": {
"http://dbpedia.org/property/officialName": [ {
Здесь start_node и end_node обозначают "type": "literal", "lang" : "en",
исходящую и входящую вершины ребра "value" : "City of Cambridge" } ],
соответственно; labels обозначает множество меток, "http://dbpedia.org/ontology/areaTotal": [ {
присвоенных вершине. "type": "literal", "value": 115650000,
Реляционное представление данной графовой БД "datatype": "http://www.w3.org/XMLSchema#double"}],
"http://dbpedia.org/ontology/isPartOf": [
может выглядеть следующим образом. Схема { "type": "uri",
реляционной БД состоит из двух отношений, одно "value": "http://dbpedia.org/resource/East_of_England" },
из которых соответствует вершинам графа (Nodes, { "type": "uri",
табл. 1), другое – ребрам (Relationships, табл. 2). "value": "http://dbpedia.org/resource/Cambridgeshire" } ],
"http://dbpedia.org/ontology/leaderName": [ {
Таблица 1. Отношение Nodes "type": "uri",
"value": "http://dbpedia.org/resource/Andrew_Lansley"} ]
id labels title year name } }
1 [“MOVIE”] “Lost in 2003
translation” { "http://dbpedia.org/resource/Andrew_Lansley": {
2 [“PEOPLE”] “Bill Murray” "http://dbpedia.org/property/name": [ {
3 [“PEOPLE”] “Sofia Coppola” "type" : "literal", "lang" : "en",
"value" : "Andrew Lansley" } ],
"http://dbpedia.org/ontology/birthDate": [ {
Таблица 2. Отношение Relationships "type": "literal", "value": "1956-12-10+02:00",
id start_node end_node relationship_type character "datatype": http://www.w3.org/XMLSchema#date } ],
"http://dbpedia.org/ontology/party": [ {
4 1 2 “CAST” “Bob Harris”
"type": "uri",
5 3 1 “DIRECTS” "value": "http://dbpedia.org/resource/Conservative_
Party_(UK)" } ] ,
Преобразование графовой БД в реляционное "http://dbpedia.org/ontology/electionMajority": [ {
представление может быть осуществлено при "type": "literal", "value": 7838,
помощи следующих двух функций, определенных "datatype" : "http://www.w3.org/XMLSchema#integer"}]
} }
на языке Jaql:
createNodesRelation = fn(movie_graph_db)(
movie_graph_db->filter $.type == "node"-> Свойства Кембриджа как объекта включают, в
transform { id: $.id, labels: $.labels, частности, название (officialName), площадь
title: $.properties.title, year: $.properties.year, (areaTotal), вышестоящие территориальные
name: $.properties.name } ); образования (isPartOf), лидера (leaderName).
Свойства Эндрю Лэнсли, как объекта базы знаний ,
createRelationshipRelation = fn(movie_graph_db)(
включают имя (name), дату рождения (birthDate),
movie_graph_db->filter $.type == "relationship"->
transform { id: $.id, партию (party), количество голосов на выборах
start_node: $.start_node, end_node: $.end_node, (electionMajority).
relationship_type: $.relationship_type, Реляционное представление объектов такого
character: $.properties.character } ); рода может выглядеть следующим образом. Схема
Функции принимают на вход представление реляционной БД состоит из двух отношений, одно
графовой БД в формате JSON. Первая из функций из которых соответствует городам (Cities), другое –
возвращает отношение Nodes в формате JSON, персонам (Persons). Атрибутам отношений
пригодное для загрузки в соответствующую соответствуют свойства объектов. В RDF-
реляционную таблицу, вторая – отношение хранилищах подобные отношения, группирующие
Relationships. При определении функций свойства однородных объектов, называются
используются выражения фильтрации массивов таблицами свойств (property tables [29]).
206
Таблица 3. Отношение Cities
subject officialName area Total isPartOf leaderName
"http://dbpedia.org/ ["City of [115650000] ["http://dbpedia.org/resource/ ["http://dbpedia.org/
resource/Cambridge" Cambridge"] East_of_England", resource/Andrew_Lansley"]
"http://dbpedia.org/resource/
Cambridgeshire"]
Таблица 4. Отношение Persons
subject name birthdate party election
Majority
"http://dbpedia.org/ ["Andrew ["1956-12-10+02:00"] ["http://dbpedia.org/resource/ [7838]
resource/Andrew_Lansley" Lansley"] Conservative_Party_(UK) "]
Преобразование RDF-объектов персон в кортежи
отношения Persons может быть осуществлено при 4 Пример задачи интеграции
помощи функции createPersonTuple, определенной неоднородных коллекций данных
на языке Jaql:
Рассматриваемая задача состоит в определении
createPersonTuple = fn(person_rdf) (
pa = ["http://dbpedia.org/property/name", отношения населения к экономическим и
"http://dbpedia.org/ontology/birthDate", политическим вопросам в конкретном регионе. В
"http://dbpedia.org/ontology/party", задаче используются следующие информационные
"http://dbpedia.org/ontology/electionMajority"], ресурсы:
properties_record = index(values(person_rdf), 0), архивы региональных электронных СМИ;
if( not
containedIn( "false", социальные сети (например, ВКонтакте);
for($pa in pa) сервисы микроблогов (например, Twitter).
if(containedIn($pa, Ресурсы существенным образом отличаются по
names(record(values(person_rdf))))) структуре, а также по характеру и лексике текстов.
["true"] Например, сообщение из Twitter, представленное в
else ["false"])
формате JSON, содержит текст, идентификатор
)
if( arity(person_rdf) == 1 ) сообщения, язык сообщения, дату создания,
{ subject: index(names(person_rdf), 0), информацию о пользователе (приведена лишь часть
name: for( $name in данных, составляющих сообщение):
properties_record."http://dbpedia.org/property/ { “text”: “В первом квартале 2014 ввод жилья в
name") [$name.value], Бобруйской области вырос на 30 процентов
birthday: for( $birthday in http://t.co/9cTJcnkucI”,
properties_record."http://dbpedia.org/ontology/ “id”: 441892291058622460,
birthDate") [$birthday.value], “lang”: "ru",
party: for( $party in “created_at”: "Fri Mar 07 11:05:06 +0000 2014",
properties_record."http://dbpedia.org/ontology/ “user”: { "name":"Петр Иванов",
party") [$party.value], "screen_name":"32_minute",
electionMajority: for( $em in “id”: 2191013094}
properties_record."http://dbpedia.org/ontology/ }
electionMajority") [$em.value]
}
Сообщение из сети ВКонтакте содержит
);
идентификатор сообщения, идентификатор автора,
идентификатор получателя, дату создания, текст,
Функция принимает на вход RDF спецификацию количество «лайков», количество переотправок
персоны в формате JSON и возвращает кортеж, (приведена лишь часть данных, составляющих
пригодный для загрузки в соответствующую сообщение; текст сообщения приведен не
реляционную таблицу. При определении функции полностью):
используются условное выражение if, выражение
{ "id": 254,
цикла for, встроенные функции манипулирования
"from_id":2785124,
массивами и записями names, values, record, index "to_id":6835,
[16] и вспомогательная функция containedIn(elm, "date":1387737719,
arr), возвращающая значение true, если значение elm "text":"Бобруйская область - регион# в котором
является элементом массива arr: добывается больше половины всего леса в России. Однако
containedIn = fn(elm, arr)( на благосостоянии простых жителей Ухтомского района
exists(for( $iter in arr ) if($iter == elm) [true]) ); это никак не сказывается. …",
"likes":{"count": 10},
"reposts":{"count": 5, "user_reposted": 5}
Функция преобразования RDF-объектов городов }
определяется аналогичным образом.
207
В рамках задачи анализу подлежат статьи из сообщений и статей, упоминающих этих лиц или
СМИ и сообщения из социальных сетей за организации.
определенный период времени (текущий год, Отношение населения к экономическим и
квартал и т.д.) и опубликованные авторами, политическим вопросам может быть также
проживающими в определенном регионе. Такие ограничено некоторой темой, например, «проблемы
статьи и сообщения извлекаются из жилищно-коммунального хозяйства». В этом случае
соответствующих ресурсов, загружаются в Hadoop и анализу подвергаются лишь те сообщения, в
пропускаются через средства текстовой аналитики 2 , которых присутствуют ключевые слова (или их
развернутые на каждом из узлов кластера. Анализ комбинации), относящиеся к теме, например,
текста позволяет извлечь из текстов статей и {жилье, ЖКХ, отопление, электричество, тариф,
сообщений различные упоминаемые объекты: барак, ветхий, аварийный}.
персоны (и их должности), территориальные
Дополнительные аналитические возможности
образования, организации и т.д. Также анализ текста
предоставляет виртуальная интеграция социальных
позволяет оценить тональность сообщения –
графов (хранимых в графовой базе данных,
выявить позитивное, нейтральное или негативное
например, Neo4j [26]) и хранилища сообщений и
отношение автора текста к теме текста. Таким
статей в одном предметном посреднике.
образом, тональность текста может быть связана с
Социальные графы (образуемые отношениями
объектами, упоминаемыми в тексте.
«друг» или «подписчик») загружаются в графовую
Например, информация, извлеченная из базу данных, предоставляющую операции и
приведенного выше сообщения из сети ВКонтакте, алгоритмы анализа графов. Предметный посредник,
может выглядеть следующим образом: интегрирующий социальные графы и хранилище
{ “user_id”: “6835”, статей и сообщений, позволяет формулировать и
“message_id”: 254, исполнять программы, определяющие влияние
“source”: “ВКонтакте”, социальных сетей на формирование отношения
“extracted_objects”:{ населения к экономическим и политическим
“persons”: [{ “name”: “Василий”,
“surname”: “Петров”,
вопросам. Например, может быть отслежено
“position”: “губернатор”}], распространение во времени позитивных,
“territorial_entities”: [ нейтральных и негативных сообщений,
{“name”: “Бобруйская”, относящихся к некоторой теме (заданной
“type”: “область”}, ключевыми словами) в связных подграфах
{“name”: “Ухтомский”, социальных сетей.
type: “район”}]
}, 5 Родственные работы
“sentiment”: “negative”,
“negative_keywords”: В качестве примера подхода, родственного
[“барак”, “отчаяние”, “прогнивший”] предлагаемой в данной статье комбинированной
} виртуально-материализованной архитектуре,
необходимо упомянуть средства федерализации,
В тексте сообщения упоминаются губернатор поддерживаемые в Big SQL [30]. Эти средства
Василий Петров, территориальные образования появились в июле 2014 г., в момент создания
Бобруйская область и Ухтомский район. Текст финальной версии статьи. Федерализация является
носит отрицательную тональность. прямым аналогом виртуальной интеграции в
Материализованные статьи и сообщения, предметных посредниках.
обогащенные информацией, извлеченной из текстов, Архитектура системы федерализации BigSQL
преобразуются к виду, удовлетворяющему единой (рис. 2) средства выполнения программ (Runtime
схеме хранилища 3 . В хранилище помещаются также Engine), адаптеры (Wrappers) и удаленные базы
данные, извлеченные из профилей пользователей данных. Важным компонентом является Optimizer,
социальных сетей. осуществляющий планирование исполнения запроса
Определение отношения населения к с использованием статистической оценочной
экономическим и политическим вопросам может модели. Для доступа к конкретным ресурсам
быть осуществлено путем различных запросов к используются адаптеры. На текущий момент
схеме хранилища. Могут быть сделаны выводы, поддерживается федерализация для реляционных
например, об отношении населения к конкретным СУБД DB2, Oracle, Teradata и Netezza.
лицам, организациям за определенные промежутки Поддерживается реализация собственных адаптеров
времени и на определенной территории путем пользователем на языках C++ и Java.
подсчета позитивных, нейтральных и негативных Архитектура и подход к выполнению
распределенных запросов в посредниках [1] и Big
2
Обсуждение методов и средств текстовой аналитики SQL обладают рядом сходных черт: слои
выходит за рамки данной статьи. выполнения программ, адаптеров и ресурсов;
3
Принципы построения схемы хранилища для задачи планирование запросов; настраиваемые адаптеры.
выходят за рамки данной статьи, ввиду ограниченности ее
объема.
208
Рисунок 2. Архитектура BigSQL Federalization
Преимуществом подхода предметных [3] Н.А. Скворцов. Отображение модели данных
посредников является ориентация на разно- RDF в каноническую модель предметных
модельные ресурсы. Посредники позволяют посредников // Труды 15-й Всероссийской
интегрировать модельно неоднородные ресурсы: научной конференции «Электронные
реляционные, объектно-реляционные, XML, NoSQL, библиотеки: перспективные методы и
веб-сервисы и др. Средства BigSQL ориентированы технологии, электронные коллекции»
на виртуальную интеграцию реляционных баз RCDL'2013. – Ярославль: Ярославский гос.
данных. Подробный анализ средств федерализации ун-т им. П.Г. Демидова, 2013. –С. 202–209.
Big SQL и их сравнение с предметными [4] Ступников С. А. Унификация модели данных,
посредниками являются задачами дальнейшей основанной на многомерных массивах, при
работы. интеграции неоднородных информационных
ресурсов // Труды 14-й Всероссийской научной
Заключение конференции «Электронные библиотеки:
В статье рассмотрены основные принципы перспективные методы и технологии,
организации архитектуры комбинированной электронные коллекции» RCDL'2012. –
виртуально-материализованной среды интеграции Переславль-Залесский: Ун-т города
больших неоднородных коллекций данных и Переславля, 2012. – С. 67–77.
подходы к ее реализации. Целью архитектуры [5] С.А. Ступников. Отображение графовой
является сопряжение возможностей предметных модели данных в каноническую объектно-
посредников по интеграции разномодельных фреймовую информационную модель при
коллекций данных и возможностей по создании систем интеграции неоднородных
манипулированию разноструктурированными информационных ресурсов // Труды 15-й
данными, предоставляемыми платформой Hadoop и Всероссийской научной конференции
ее надстройками. Масштабирование обработки «Электронные библиотеки: перспективные
коллекций данных при помощи технологии Hadoop методы и технологии, электронные коллекции»
представляется дополнением, существенно RCDL'2013. – Ярославль: Ярославский гос.
расширяющим возможности технологии ун-т им. П.Г. Демидова, 2013. – С. 193–202.
предметных посредников по решению задач над [6] С.А. Ступников, Н.А. Скворцов, В.И. Будзко,
неоднородными информационными ресурсами. В.Н. Захаров, Л.А. Калиниченко. Методы
Реализация архитектуры, ее практическое унификации нетрадиционных моделей данных.
применение и сравнение с родственными подходами Системы высокой доступности //
являются задачами дальнейшей работы. Радиотехника. – 2014. – Вып. 1. – С. 18–39.
[7] Apache Hadoop Project. 2014. –
Литература http://hadoop.apache.org/
[1] А.Е. Вовченко Рассредоточенная реализация [8] Apache Spark project. 2014. –
приложений в среде предметных посредников : http://spark.apache.org/
дис. … канд. техн. наук : 05.13.11. – М., 2012. – [9] Edward Capriolo, Dean Wampler, Jason
216 с. Rutherglen. Programming Hive Data Warehouse
[2] Скворцов Н.А. Отображение моделей данных and Query Language for Hadoop. O'Reilly Media,
NoSQL в объектные спецификации // Труды 2012.
14-й Всероссийской научной конференции [10] Kalinichenko L.A., Stupnikov S.A. OWL as Yet
«Электронные библиотеки: перспективные Another Data Model to be Integrated // Advances
методы и технологии, электронные коллекции» in Databases and Information Systems: Proc. II of
RCDL'2012. – Переславль-Залесский: Ун-т the 15th East-European Conference. – Vienna:
города Переславля, 2012. – С. 78–87. Austrian Computer Society, 2011. – P. 178–189.
[11] Kalinichenko L.A., Stupnikov S.A., Martynov
D.O. SYNTHESIS: a Language for Canonical
209
Information Modeling and Mediator Definition for Hadoop. IBM DeveloperWorks, 2013. –
Problem Solving in Heterogeneous Information http://www.ibm.com/developerworks/library/
Resource Environments. Moscow: IPI RAN, 2007. bd-bigsql/bd-bigsql-pdf.pdf
– 171 p. [23] The Apache Hive data warehouse software. 2014.
[12] Kalinichenko L.A., Briukhov D.O., Martynov – http://hive.apache.org/
D.O., Skvortsov N.A., Stupnikov S.A. Mediation [24] The Forth Paradigm: Data-Intensive Scientific
Framework for Enterprise Information System Discovery. Eds. Tony Hey, Stewart Tansley, and
Infrastructures. Proc. of the 9th International Kristin Tolle. Redmond: Microsoft Research,
Conference on Enterprise Information Systems 2009. – http://goo.gl/GqkDX1
ICEIS 2007. – Funchal, 2007. – Volume [25] The GraphLab Project. http://graphlab.org/
Databases and Information Systems Integration. – projects/index.html
P. 246–251.
[26] The Neo4j Manual. 2014. – http://goo.gl/cHiOGF
[13] Kevin S. Beyer, Vuk Ercegovac, Rainer Gemulla,
[27] Tom White. Hadoop: The Definitive Guide.
Andrey Balmin, Mohamed Eltabakh, Carl-
O'Reilly Media; Third Edition edition. 2012.
Christian Kanne, Fatma Ozcan, Eugene J. Shekita.
Jaql: A Scripting Language for Large Scale [28] Matei Zaharia, Mosharaf Chowdhury, Michael J.
Semistructured Data Analysis. VLDB 2011. Franklin, Scott Shenker, Ion Stoica. Spark: Cluster
Computing with Working Sets. HotCloud 2010.
[14] Disco framework for distributed computing based
on the MapReduce paradigm. 2014. [29] Kevin Wilkinson, Craig Sayers, Harumi Kuno,
http://discoproject.org/ Dave Reynolds. Efficient RDF Storage and
Retrieval in Jena2. Proc. of the First International
[15] Mauricio Hernández, Georgia Koutrika, Rajasekar
Workshop on Semantic Web and Databases. –
Krishnamurthy, Lucian Popa, Ryan Wisnesky.
2003.
HIL: a high-level scripting language for entity
integration. Proceedings of the 16th International [30] Mara Elisa de Paiva Fernandes Matias. Set up and
Conference on Extending Database Technology use federation in InfoSphere BigInsights Big SQL
EDBT 2013. – P. 549–560. V3.0. 22 July 2014 (First published 08 July 2014).
– http://www.ibm.com/developerworks/library/
[16] IBM InfoSphere BigInsights Information Center.
ba-federation-biginsights/index.html
2014. – http://pic.dhe.ibm.com/infocenter/bigins/
v2r1/index.jsp
Combined Virtual and Materialized
[17] IBM InfoSphere Information Server Information
Center. 2014. – http://pic.dhe.ibm.com/infocenter/
Environment for Integration of Large
iisinfsv/v9r1/index.jsp Heterogeneous Data Collections
[18] IBM DB2 Warehouse Information Center. 2014.
Sergey Stupnikov, Alexey Vovchenko
http://pic.dhe.ibm.com/infocenter/db2luw/v10r5/
index.jsp Architecture of a combined virtual and materialized
[19] Introducing JSON. 2014. – http://www.json.org/
environment for integration of heterogeneous data
collections is provided. Collections are assumed to
[20] Yucheng Low, Joseph Gonzalez, Aapo Kyrola,
contain structured, semi-structured or unstructured data.
Danny Bickson, Carlos Guestrin, and Joseph M. Combination of virtual and materialized integration is
Hellerstein (2010). "GraphLab: A New Parallel motivated by advantages and disadvantages of both
Framework for Machine Learning." Conference on approaches. Virtual integration is supported by subject
Uncertainty in Artificial Intelligence (UAI). mediation technology. Materialized integration is
[21] Donald Miner. MapReduce Design Patterns: provided by Hadoop (open source software framework
Building Effective Algorithms and Analytics for for storage and distributed processing of large datasets)
Hadoop and Other Systems. O'Reilly Media, 2012. accompanied by a system implementing relational
[22] Cynthia M. Saracco, Uttam Jain. What's the big warehouse over Hadoop (as examples, Hive and Big
deal about Big SQL? Introducing relational SQL are considered).
DBMS users to IBM's SQL technology for
210