Научная статья на тему 'Интеграция разнородных данных в корпоративных информационных системах'

Интеграция разнородных данных в корпоративных информационных системах Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY-NC
487
58
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
БАЗЫ ДАННЫХ / РАЗНОРОДНЫЕ ДАННЫЕ / NOSQL БАЗЫ ДАННЫХ / MONGODB / БД ORACLE / MDM / SQL / DSL / СИНТАКСИЧЕСКОЕ ДЕРЕВО / СЕМАНТИЧЕСКАЯ МОДЕЛЬ / DB ORACLE / NOSQL DATABASES / HETEROGENEOUS DATA / DATABASES / SYNTAX TREE / SEMANTIC MODEL

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Волушкова Вера Львовна

Объектом исследования являются способы хранения мастер-данных в корпоративных информационных системах. Построение систем интеграции разнородных данных является одним из способов решения проблемы управления мастер-данными (Master Data Management). В данной работе рассматривается система хранения структурированных данных в различных базах данных. Такие системы называют гетерогенными системами. Гетерогенные системы обычно возникают в тех случаях, когда узлы, уже эксплуатирующие свои собственные системы с базами данных, со временем интегрируются в распределенную систему. Целью работы является создание системы хранения разнородных данных в базах данных различного типа. Для построения системы используется методология «расходящаяся разработка». Предложен подход к повышению эффективности управления разнородными данными в корпоративных информационных системах, основанный на парадигме программирования «расходящаяся разработка». В рамках данной парадигмы разработан предметно-ориентированный язык запросов к гетерогенной базе данных. Об эффективности созданной системы интегрирования данных можно судить по приведенным в работе результатам тестирования.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

INTEGRATION OF HETEROGENEOUS DATA IN CORPORATE INFORMATION SYSTEMS

The object of the research is ways to store master data in corporate information systems. Building systems for integrating heterogeneous data is one way to solve the problem of master data management. The paper discusses the storage system for structured data in various databases. Such systems are called heterogeneous systems. Heterogeneous systems usually arise in cases where nodes that already operate their own database systems will eventually integrate into a distributed system. The aim of the work is to create a storage system for heterogeneous data in databases of various types. To build the system, the methodology “divergent development” is used. An approach to improving the efficiency of managing heterogeneous data in corporate information systems based on the “divergent development” programming paradigm is proposed. Within this paradigm, a domain-specific query language for a heterogeneous database has been developed. The effectiveness of the data integration system created can be judged by the test results given in the article.

Текст научной работы на тему «Интеграция разнородных данных в корпоративных информационных системах»

Программные системы и вычислительные методы

Правильная ссылка на статью:

Волушкова В.Л. — Интеграция разнородных данных в корпоративных информационных системах // Программные системы и вычислительные методы. - 2019. - № 1. DOI: 10.7256/2454-0714.2019.1.28768 URL: https;//nbpublish.com'library_read_article.php?id=28768

Интеграция разнородных данных в корпорати информационных системах

Волуикова Вера Львовна

кандидат технических наук доцент, кафедра информатики, Тверской государственный университет 170004, Россия, Тверская область, г. Тверь, пр-д 2-Ой стахановский, 47

И w2lvera@gmail.com

Статья из рубрики "Базы данных"

Аннотация.

Объектом исследования являются способы хранения мастер-данных в корпоративных информационных системах. Построение систем интеграции разнородных данных является одним из способов решения проблемы управления мастер-данными (Master Data Management). В данной работе рассматривается система хранения структурированных данных в различных базах данных. Такие системы называют гетерогенными системами. Гетерогенные системы обычно возникают в тех случаях, когда узлы, уже эксплуатирующие свои собственные системы с базами данных, со временем интегрируются в распределенную систему. Целью работы является создание системы хранения разнородных данных в базах данных различного типа. Для построения системы используется методология «расходящаяся разработка». Предложен подход к повышению эффективности управления разнородными данными в корпоративных информационных системах, основанный на парадигме программирования «расходящаяся разработка». В рамках данной парадигмы разработан предметно-ориентированный язык запросов к гетерогенной базе данных. Об эффективности созданной системы интегрирования данных можно судить по приведенным в работе результатам тестирования.

Ключевые слова: базы данных, разнородные данные, NoSQL базы данных, MongoDB, БД ORACLE, MDM, SQL, DSL, синтаксическое дерево, семантическая модель

DOI:

10.7256/2454-0714.2019.1.28768

Дата направления в редакцию:

24-01-2019

Дата рецензирования:

10.7256/2454-0714.2019.1.28768 26-01-2019

Интеграция разнородных данных в корпоративных информационных системах

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

В данной работе рассматривается система хранения структурированных данных в различных базах данных. Такие системы называют гетерогенными системами. Гетерогенные системы обычно возникают в тех случаях, когда узлы, уже эксплуатирующие свои собственные системы с базами данных, со временем интегрируются в распределенную систему.

Задача построения гетерогенных систем возникла из области распространения мастер-данных (distribution of master data) или Master Data Management (MDM}^. Все департаменты организации нуждаются в наиболее полной информации, которую необходимо собрать, используя все критичные для бизнеса мастер-данные (клиенты, продукты, поставщики, НСИ и т.д.). Потребителя таких данных интересуют не столько сами данные, сколько их объединения или агрегаты (например, клиента вместе со счетами и инструментами, которыми он торгует).

Данные распространяются согласно трем основным сценариям: выгрузка массива данных по расписанию (bulk load), подписка на обновления (publish-subscribe), поисковые запросы (request-response).

При использовании этих сценариев требования, как по атрибутному набору данных, так и по нефункциональным свойствам (объему и скорости доставки) сильно меняются от потребителя - к потребителю. Поэтому заранее спроектировать реляционную схему, которая справлялась с часто меняющимися структурам данных практически невозможно.

Создание общего для всех пользователей интерфейса, который будет гибким и расширяемым, может решить данную проблему. В качестве такого интерфейса можно рассмотреть язык запросов для сценариев bulk load и request-response. Чтобы обеспечить достаточную скорость выполнения, требуется за этим интерфейсом иметь промежуточный буфер с быстрым доступом и иметь способ маршрутизации запросов к этому буферу. Таким образом, можно достигнуть баланса между переиспользованием ресурсов (если 2 клиента делают одни и те же запросы) и производительностью этих запросов.

Для хранения данных в таких системах можно использовать БД различного типа. Опыт показывает, что Oracle лучше справляется с более непредсказуемыми и сложными

запросами а NoSQL база данных - с простыми типовыми запросами.

Рассмотрим далее MongoDB, которая является наиболее распространенной NoSQL БД. Она представляет собой документо-ориентированное нереляционное хранилище данных, использующее для хранения данных формат BSON - расширение формата JSON (JSON -

JavaScript Object Notation, BSON - Binary JSON) 131

NoSQL базы данных обладают достаточно интересными свойствами, которых нет у реляционных баз данных. Однако у NoSQL решений есть существенные недостатки, которые не позволяют полностью отказаться от использования реляционной БД: ненадежность, отсутствие запросов типа join, отсутствие транзакций (кроме Neo4J), у каждой NoSQL БД свой (более узкий, чем у реляционных БД) спектр задач.

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

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

Вопрос интеграции данных достаточно актуален. Компания Oracle создала архитектуру системы интеграции больших данных на основе ETL (ETL (от англ. Extract, Transform,

Load — дословно «извлечение, преобразование, загрузка») [4]. Процесс ETL поддерживают компании Microsoft SQL Server/SSIS, Hadoop/Apache Hive & Spark, IBM Однако, ETL-технологии как правило построены на использовании вспомогательного ПО и предназначенные для реляционных БД. В некоторых случаях проблему можно решить с помощью предметного языка запросов к хранилищу разнородных данных как показано в 151.

В данной работе проблема разнородной структуры запросов к базам данных решалась с помощью расходящейся разработки, опирающейся на предметно-специфичный язык (англ. DSL-Based Development). DSL (domain-specific language) добавляет разработчику еще один уровень абстракции - уровень представления данных161. Это увеличивает гибкость создания системы171.

Созданная гетерогенная система состоит из четырех подсистем (рисунок 1): подсистемы синтаксического анализа и построения семантической модели, подсистемы принятия решений, базы данных и интерфейса пользователя.

Рисунок 1. Архитектура системы

Синтаксический анализатор обрабатывает информацию, поступающую от пользователя. Подсистема построения семантической модели строит модель и формирует объект-документ MongoDB и запрос на вставку(Inseгt) для БД ORACLE.

В нашей системе за принятие решения, в какой БД будет выполняться запрос, отвечает модуль «принятия решения». Этот модуль на основании статистики времени выполнения подобных запросов отправляет текущий запрос на соответствующую базу данных. Для поддержания запросов, требующих рассмотрения нескольких документов, скорее всего, будет использоваться SQL база данных, а для запросов требующих рассмотрения одного документа, - MongoDB. Интерфейс пользователя позволяет искать нужную информацию в гетерогенной системе.

Проблема потери данных в разрабатываемой системе не актуальна, т.к. данные часто обновляются, не являются ценными и не являются частными данными пользователя. Синхронизация данных достигается во время обновления. Приоритетным в нашей системе является время выполнения запроса.

Рассмотрим подробнее все модули системы. Для оценки скорости обработки запросов созданной системы гетерогенная база была заполнена информацией о фильмах, хранящихся в online порталах сети Internet.

Подсистема синтаксического анализа и построения семантической модели.

Поисковые запросы пользователя выполняются по схеме, представленной на рисунке 2.

Синтаксический анализатор (парсер) — это программа или часть программы, выполняющая синтаксический анализ. В ходе синтаксического анализа исходный текст преобразуется в дерево разбора (синтаксическое дерево), которое отражает синтаксическую структуру входной последовательности и хорошо подходит для дальнейшей обработки. Синтаксическое дерево является гораздо более полезным представлением сценария, чем слова, поскольку с ним можно работать различными способами, по-разному обходя дерево. Синтаксическое дерево чаще всего формируется

в стеке вызовов и обрабатывается при его обходе

Рисунок 2 Сценарий обработки поисковых запросов

Для создания синтаксических анализаторов использовался генератор парсеров ANTLR[8]

(от aH^.ANother Tool for Language Recognition — «ещё одно средство распознавания языков»). ANTLR позволяет автоматически генерировать программу1парсер по LL(*) грамматикам. В системе создан ANTLR скрипт, описывающий грамматику для синтаксического анализатора и интерфейс, служащий для реализаций правил этой

грамматики. Запросы к базе формируются с помощью querydsl

На рисунке 3. приведен ANTLR скрипт, описывающий грамматику для синтаксического а на лиз а тора .

manyjMm;s_5tart BKACE CPEN person паше яншу пашез* BR_4JCE_CL05E; Eifer плш5_й1[5гч регьгп_Я11я,з.:гаг_Ы151и country_filtKrK;

г q_iub: IS BIGGER LESS BIGGE R_CK_IS L ES S _OR_IS;

Рисунок 3. ANTLR скрипт, описывающий грамматику для синтаксического анализатора.

Запросы, созданные на разработанном языке запросов, с помощью генератора запросов преобразуются либо в BSON-запрос к MongoDB либо в SQL запрос. Ниже приведены примеры запросов с использованием созданной грамматики (схема данных БД ORACLE приведена на рисунке 7, иерархия классов MongoDB на рисунке 6).

Пример 1. Найти информацию о фильме по названию

find film name = 'name'.

BSON-запрос к MongoDB.

> db.film.find({name : "name"});

SQL запрос.

Select * from FILM_SEACHERS_FILMS

where FILM_NAME = 'name'

Пример 2. Найти название фильма, в котором роли исполняли Харди и Уильяме.

find film persons('role' ¡Б^Харди^ильямс'}}

BSON-запрос к MongoDB.

> db.film.find( { {role: 'role'},persons:[ "Харди","Уильямс"]

SQL запрос.

Select f.FILM_NAME

from FILM_SEACHERS_PERSON_TO_FILM ptf

join FILM_SEACHERS_FILMS f on f.ID = ptf.FILM_ID

join FILM_SEACHERS_PERSONS p on p.ID = ptf.PERSON_ID

join FILM_SEACHERS_PROFS pr on pr.ID = ptf.PROF_ID

where p.NAME in ('Харди','Уильямс')

and pr.PROF_NAME ='role';

В созданной системе существует два сценария обработки входной информации. Первый сценарий, рассмотренный выше, предназначен для поиска информации в гетерогенной системе. Второй сценарий предназначен для заполнения баз данных по интернет контенту. База была заполнена информацией о фильмах, хранящихся в online порталах сети Internet.

На рисунке 4 приведен ANTLR скрипт для распознавания html страницы сайта Megogo.com. Скрипт предназначен для распознавания персон.

a iternameiBE FORI_TEXT info AFTER. TEST;

BE TORE_NAN-E: p.t'avj] s'<IDOCTYPE htitü> *'<hl iianprop^'nairiä"

NAbE_TAG_STAKT: <hl ifem prop= "паке" dass^'vi«v_tMe>'; CONTENT_BLOCK_5TART: Jöiker":-';

Рисунок 4. ANTLR скрипт для распознавания html страницы сайта Megogo.com.

На вход созданному ANTLR анализатору (парсеру) приходит html страница и этот парсер, согласно написанной грамматике, строит синтаксическое дерево. Пример такого дерева для формирования списка персон, относящихся к фильму, показан на рисунке 5.

Рисунок 5 . Дерево для формирования списка персон

ANTLR строит так же интерфейс по грамматике для реализации паттерна слушатель. Средствами ANTLR обходится созданное синтаксическое дерево и во время обхода вызывается под каждое правило грамматики соответствующая функция из созданного интерфейса.

В разработанной системе создана реализация такого интерфейса. Она позволяет заполнить семантическую модель во время обхода дерева. Семантическая модель представляет собой иерархию классов, показанную на рисунке 6. Эта иерархия в случае MongoDB совпадает с набором классов, описывающих документы MongoDB.

m. 'За !ng) ml

SV14

vod

m. лАйепгефапдЗ vod

m

tP ЬоЫмп

rP jiUfTuthtName Srm)

tP war hi

„Р refane l4t<ft*Bn0>

rP deKnptton Strr-j

fP Sfrrg

rp rote Ui-AA:-

rP AÄ Integer

id) «мм>-у LW<SWfl>

fö td Cto^rtid

( P сагйее boetMn

Sffi^

rP coil integer

IMKS«t4>>

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

rp rjssjnMwr* Strnj

tP popiarvtY ГЛ

с Rot

•)P pereor Person siwg

{

gähnen

n PtrwnQ

m PtrsöntSir^J

0*1*

a lEtJjectie

rife SirtJ

canby Stri

пене Sire

ST14

dwifttetr □ate

с üisng

"■ Чл-лаз

m Ьнр^Мф Dai*)

iE r*jr

i" tiH

Irbcfec Zlfr

in*«

Рисунок 6. Иерархия классов MongoDB Подсистемы принятия решений.

DecisionMaker - сервис возвращающий базу данных, в которой запрос выполнять выгоднее. В данной работе реализован следующий подход.

Имеется таблица созданная в Oracle Database, в которой записывается время выполнения запроса в каждой БД. В данном случае запрос представляется шаблоном, в котором все конкретные значения полей заменяются на «?». DecisionMaker создает шаблон запроса и ищет этот шаблон в таблице. Из двух БД выбирается та, в которой этот

запрос выполняется за наименьшее время.

Перед запуском системы необходимо ее обучить. Т.е. запустить достаточно большое множество запросов и на той, и на другой БД и зафиксировать время выполнения запросов.

Если DecisionMaker не принял никакого решения, то запрос выполняется в обеих БД параллельно. Данные о выполнении этого запроса записываются в таблицу.

Созданная архитектура системы может быть применена для любой предметной области. При реализации системы возникает проблема заполнения информацией баз данных. Данные может вводить пользователь, данные можно брать из сторонних систем. Одним из источников информации являются интернет ресурсы. Для использования такого ресурса необходимо написать собственную грамматику для разбора web страниц.

Базы данных и интерфейс пользователя.

Созданная система реализована для поиска фильмов в online порталах сети Internet.

Схема данных для хранения информации о фильмах и персонах, связанных с киноиндустрией, для ORACLE database показана на рисунке 7.

Рисунок 7. Схема базы данных ORACLE

Модель в MongoDB представляет собой набор следующих сущностей, показанных на рис.6. Для работы с MongoDb используется O RM(Object-relational mapping) Google.morphia. ORM - технология программирования, которая связывает базы данных с концепциями объектно-ориентированных языков программирования, создавая «виртуальную объектную базу данных». В случае использование Google.morphia достаточно создать ряд объектов, описав их с помощью соответствующих классов.

Интерфейс системы был создан с помощью следующих технологий:^Р, css, JavaScript, Spring.

Для оценки скорости обработки запросов созданной системы гетерогенная база была заполнена информацией о фильмах, хранящихся в online порталах сети Internet.

Для разработки системы используется язык Java и потребовались следующие библиотеки, средства и базы данных: Spring , Google.morphia , QUERYDSL, MongoDB, ORACLE database.

Все эксперименты проводились на ноутбуке под управлением операционной системы Ubuntu 17.04 (64-bit) с процессором Intel(R) Core(TM) i7-2630QM CPU. Описание

тестирования приведено в

Результаты тестирования созданной базы приведены ниже (Таблица1).

Таблица 1. Статистика системы

Шаблоны запросов ORACLEDB (мсек) MongoDB(мсек)

find film 205591 3102

findfilmpersons { ?is {?, ?}} genreis? 206 1010

findfilmpersons { ?is {?, ?}} countryis? 142 523

findfilmpersons { ? is{?, ?}} 9 481

find film persons { ? is {?, ?}} genre is ?year>?year<= ? 16 68

f nd film country is ? 27460 4661

f nd film name = ? 583 33

f nd film year >?year<? 97632 7576

f nd film year >? 52 12

f nd film year <? 136092 6016

f nd film year <?persons { ? is ?} 52 69

f ndfilmyear<?countryis? 26169 3054

f nd film year < ? country is ? genre is ? 5002 27

f nd film persons { ? is ?} 350 506

f y nd film persons { ? is ?} genre is ? ear>? 350 197

find film persons { ? is ?} genre is ? year>?country is ? 69 167

find film persons { ? is ?} 297 648

find film genre is ? 13446 3646

Анализ приведенной таблицы показал, что запросы, требующие соединения двух или более документов в MongoDB выполняются в разы медленнее, чем в Oracle Database. Однако, простейшие запросы (по критериям одной сущности, например фильма), в MongoDB выполняются на порядок быстрее. Например, запрос "find film" MongoDB выполняет в 66 раз быстрее, чем Oracle Database.

Заключение

В статье представлен метод интеграции гетерогенных данных, обеспечивающий сокращение времени передачи информации и повышение ее достоверности. Описано несколько языков, для распознавания информации от каждого источника и одна семантическая модель. Представлен также единый способ хранения информации из разных источников. Разработана семантическая модель, позволяющая отражать данные из сети интернет в базы данных. Разработан язык для поиска информации. Создана LL грамматика для анализа web страниц.

Библиография

1. Knut Jürgensen Master Data Management (MDM): Help or Hindrance? [ Electronic resource ] URL: https://www.red-gate.com/simple-talk/sql/database-delivery/master-data-management-mdm-help-or-hindrance/(дата обращения: 23.01.2019).

2. Oracle Database Gateways [Electronic resource] http://www.oracle.com/technetwork/database/gateways/index-100140.html (дата обращения: 23.01.2019).

3. Кристина Чодороу, Майкл Дирольф MongoDB: The Definitive Guide. O'Reilly Media, 2010. 216с.

4. The Five Most Common Big Data Integration Mistakes to Avoid. [Elecronic resource] URL: http://www.oracle.com/us/products/middleware/data-integration/big-data-integration-mistakes-wp-2492054.pdf (дата обращения: 23.01.2019).

5. М. В. Щербаков, Чан Ван Фу, Сай Ван Квонг Грамматика запросов для хранилища разнородных данных в проактивных системах // Программные продукты и системы. 2018. № 4. с. 659-667. DOI:10.15827/0236-235X.124.659-666

6. В. Л. Волушкова Гетерогенные базы данных в корпоративных информационных системах // Информационные технологии в науке, образовании и управлении материалы XLIV международной конференции и XIV международной конференции молодых учёных IT + S&E

7. Martin Fowler. Domain Specific Languages. Addison-Wesley Professional, 2010. 640с.

8. Terence Parr The Definitive ANTLR 4. Reference. Pragmatic Bookshelf, 2013.326с

9. Querydsl [Electronic resource] URL: http://www.querydsl.com (дата обращения: 23.01.2019).

10. В. Л. Волушкова, А.Ю. Волушкова Поиск структурированной информации в

гетерогенных базах данных // Информационные технологии в науке, образовании и управлении под редакцией проф. Е.Л. Глориозова. Москва, 2015. С. 132-136.

i Надоели баннеры? Вы всегда можете отключить рекламу.