РОЗРОБКА СИСТЕМИ ДЛЯ АНАЛІЗУ ЗВ'ЯЗКІВ НА ОСНОВІ ГРАФОВИХ РОЗПОДІЛЕНИХ БАЗ ДАНИХ - Наукові конференції

Вас вітає Інтернет конференція!

Вітаємо на нашому сайті

Рік заснування видання - 2011

РОЗРОБКА СИСТЕМИ ДЛЯ АНАЛІЗУ ЗВ'ЯЗКІВ НА ОСНОВІ ГРАФОВИХ РОЗПОДІЛЕНИХ БАЗ ДАНИХ

13.05.2022 10:55

[1. Інформаційні системи і технології]

Автор: Свистунов Антон Олександрович, студент, Київський національний університет імені Тараса Шевченка, м. Київ


Збір та аналіз великих даних є одним з основних напрямків розвитку комп’ютерних наук. Згідно даних ресурсу EarthWeb.com у 2022 році щодня генерується 2,5 квінтильйони байт даних [1]. Зі збільшенням кількості даних на фізичних та хмарних носіях постає необхідність у структуруванні, агрегації цих даних з метою подальшого аналізу. Сховища даних більшості систем, що орієнтовані на автоматизацію роботи бізнесу або некомерційних організацій, не пристосовані для складних операцій над зв’язками між сутностями предметної області. Індексація та проєкція такого роду даних на графову модель дозволяє вирішувати ряд аналітичних задач більш ефективним способом. Проблемою є складність реалізації такої індексації, а також проектування та обслуговування графових баз даних.

Дані, що зберігаються у сховищах систем для автоматизації бізнесу або некомерційних організацій, у своїй більшості, не використовуються для аналізу та прийняття рішень. Згідно досліджень IDC у 2012 році тільки 0,5% із загальної кількості цифрових даних було проаналізовано та 3% розмічено (збережено у придатній до аналізу формі). За даними досліджень 23% усіх цифрових даних є придатними до обробки та аналізу [2]. У дослідженнях 2020 року, наводиться 20% даних придатних до аналізу [3]. На основі цієї статистики, можна зробити висновок, що на даний момент більшість даних, що продукуються внаслідок діяльності людства не використовуються, а лише зберігаються на носіях без жодного застосування. Звідси, виникає необхідність створення периферійних систем для збереження та агрегації даних найбільш придатним до аналізу чином.

Метою розробки системи було надати ефективний інтерфейс для інтегрування графових сховищ даних в якості периферійного сховища з метою подальшого використання в аналітичних цілях. Система надає інтерфейс для задання доменної обласні в графовій моделі вершини-зв’язки і надає REST та GraphQL API для взаємодії з графовим сховищем. Інтерфейси для запису та читання даних специфіковані за відкритими стандартами, що дозволяє генерувати клієнтський програмний код. 

Розробці програмного продукту передували дослідження типів сховищ, що підтримують збереження графових даних та містять інтерфейс для запитів з використанням алгоритмів на графах. В якості основного типу сховища графових баз даних було обрано середовище управління базами даних Neo4j, що за даними ресурсу DB-Engines на 2022 рік є найбільш використаною базою даних серед аналогів [4]. Серед аналогів розглядалися Microsoft SQL Server (реляційна база даних), RedisGraph (база даних типу «ключ-значення») та AgangoDB (документо-орієнтована база даних).

Архітектура Neo4j розроблена для оптимального управління, збереження та ітерації по елементам графової структури [5]. Один екземпляр Neo4j може містити деяку кількість графів/баз даних, що ізольовані на рівні файлів на диску. Для кожного графу Neo4j зберігає файли з вершинами, зв’язками, властивостями, строковими властивостями, масивами та індексами. Всі дані зберігаються у вигляді зв’язних списків об’єктів фіксованого розміру. Кожен об’єкт типів вершина та зв’язок містить посилання на перший об’єкт зв’язаного списку властивостей. Кожен об’єкт вершини також містить посилання на зв’язаний список об’єктів зв’язок. Кожна зв’язка містить посилання на дві вершини графа (у вигляді орієнтованого ребра графа – початок та кінець), а також посилання на попередню та наступну зв’язку для цих двох вершин відповідно. Разом з цим, Neo4j зберігає файл з індексами – посиланнями на вершини та ребра – для швидкого доступу по відповідних об’єктів [6]. Такий підхід до збереження графових даних дозволяє уникнути додаткових операцій над даними при запитах (наприклад, з’єднання) і проводити обхід графа найбільш природнім способом.

Мовою запитів Neo4j є мова Cypher, на основі якої було розроблено стандарт openCypher. Це робить Neo4j сумісним з системами, що звертаються до сховища графових даних з використанням openCypher. Також важливим фактором на користь використання Neo4j є підтримка протоколу GraphQL.

Під час розробки системи для збору та аналізу даних зв’язків на основі графових розподілених баз даних було вирішено наступні задачі:

• створення сервісу для збереження даних про тенати, користувачів та списки доступу;

• створення сервісу для збереження метаданих проєктів;

• створення сервісу для отримання та валідації даних;

• створення сервісу для збереження вхідних даних у сховище;

• створення сервісу для надання інтерфейсу доступу до графових даних;

• розробка алгоритму генерації специфікацій мережевих інтерфейсів з використанням стандартів OpenAPI та SDL [7, 8];

• розробка валідації та трансляції запитів на читання та запис даних у графове сховище;

• упаковка системи у Kubernetes кластер з метою розгортання у хмарному середовищі (рис. 1).

Дана розробка створена як для персонального так і для корпоративного вжитку. Користувачі системи мають широкі можливості для інтеграції розробленої системи для збільшення аналітичної цінності даних. Прикладами інтеграцій можуть виступати системи для збору соціологічних даних, бібліографічних даних, статистики використання програмних продуктів, семантичний аналіз мережевих ресурсів, тощо.





Рисунок 1 – Варіант розгортання системи з технології оркестрації контейнерів Kubernetes.


Продовження досліджень у даній галузі допоможе покращити створений продукт шляхом додавання підтримки інших типів сховищ даних та розширення списку підтримуваних протоколів мережевої взаємодії. Дана розробка може бути використана як основа для досліджень у галузях машинного навчання та аналізу великих даних.


Література


1. Wise J. How Much Data Is Created Every Day in 2022? [Електронний ресурс] / Jason Wise // EarthWeb. – 2022. – Режим доступу до ресурсу: https://earthweb.com/how-much-data-is-created-every-day.


2. Gantz J. THE DIGITAL UNIVERSE IN 2020: Big Data, Bigger Digital Shadows, and Biggest Growth in the Far East / J. Gantz, D. Reinsel. // IDC iView. – 2012.


3. IDC FutureScape: Worldwide Data, Integration, and Analytics 2020 Predictions / [D. Vesset, M. Maddox, J. Hamel та ін.]. // IDC. – 2019.


4. DB-Engines Ranking of Graph DBMS [Електронний ресурс] // DB-Engines. – 2022. – Режим доступу до ресурсу: https://db-engines.com/en/ranking/graph+dbms.


5. Getting Started Guide [Електронний ресурс] // Neo4j. – 2022. – Режим доступу до ресурсу: https://neo4j.com/docs/getting-started/current/.


6. Rocha J. Understanding Neo4j’s data on disk [Електронний ресурс] / José Rocha // Neo4j Knowledge Base. – 2022. – Режим доступу до ресурсу: https://neo4j.com/developer/kb/understanding-data-on-disk/.


7. Rocha J. Understanding Neo4j’s data on disk [Електронний ресурс] / José Rocha // Neo4j Knowledge Base. – 2022. – Режим доступу до ресурсу: https://neo4j.com/developer/kb/understanding-data-on-disk/.


8. GraphQL schema basics [Електронний ресурс] // Apollo Docs. – 2022. – Режим доступу до ресурсу: https://www.apollographql.com/docs/apollo-server/schema/schema/.


__________________


Науковий керівник: Панченко Тарас Володимирович, кандидат фізико-математичних наук, доцент, Київський національний університет імені Тараса Шевченка, м. Київ

Creative Commons Attribution Ця робота ліцензується відповідно до Creative Commons Attribution 4.0 International License
допомога Знайшли помилку? Виділіть помилковий текст мишкою і натисніть Ctrl + Enter
Конференції

Конференції 2024

Конференції 2023

Конференції 2022

Конференції 2021



Міжнародна інтернет-конференція з економіки, інформаційних систем і технологій, психології та педагогіки

Наукова спільнота - інтернет конференції

:: LEX-LINE :: Юридична лінія

Інформаційне суспільство: технологічні, економічні та технічні аспекти становлення