title: ÐÑÐ¾ÑÐ¾ÑÐ¸Ð¿ ÑÐµÑÐ²Ð¸ÑÐ° Ð¿Ð¾ Ð¸Ð·Ð²Ð»ÐµÑÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¸Ð· Ð³ÑÐ°ÑÐ¾Ð²Ð¾Ð¹ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¸ Ð¸Ñ Ð¾Ð±Ð¾Ð³Ð°ÑÐµÐ½Ð¸Ñ
title: Ð²ÑÐ¿ÑÑÐºÐ½Ð°Ñ ÐºÐ²Ð°Ð»Ð¸ÑÐ¸ÐºÐ°ÑÐ¸Ð¾Ð½Ð½Ð°Ñ ÑÐ°Ð±Ð¾ÑÐ° Ð±Ð°ÐºÐ°Ð»Ð°Ð²ÑÐ°
titleType: Subtitle
title: A prototype of a service for extracting data from a graph database and enriching it
Creators: name: Ð¤Ð¸Ð»Ð¸Ð¼Ð¾Ð½Ð¾Ð²Ð°, ÐÐ»ÐµÐºÑÐ°Ð½Ð´ÑÐ°
Publisher: name: Ð¡Ð°Ð½ÐºÑ-ÐÐµÑÐµÑÐ±ÑÑÐ³ÑÐºÐ¸Ð¹ Ð¿Ð¾Ð»Ð¸ÑÐµÑÐ½Ð¸ÑÐµÑÐºÐ¸Ð¹ ÑÐ½Ð¸Ð²ÐµÑÑÐ¸ÑÐµÑ ÐÐµÑÑÐ° ÐÐµÐ»Ð¸ÐºÐ¾Ð³Ð¾
Year: 2024
Subjects: Janusgraph
Ð³ÑÐ°ÑÐ¾Ð²ÑÐµ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
ÑÐµÑÐ²Ð¸Ñ Ð¿Ð¾ Ð¸Ð·Ð²Ð»ÐµÑÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ
NoSQL
Ð¡Ð£ÐÐ
graph database
data extraction service
DBMS

description: Ð¦ÐµÐ»Ñ Ð²ÑÐ¿ÑÑÐºÐ½Ð¾Ð¹ ÐºÐ²Ð°Ð»Ð¸ÑÐ¸ÐºÐ°ÑÐ¸Ð¾Ð½Ð½Ð¾Ð¹ ÑÐ°Ð±Ð¾ÑÑ â ÑÐ°Ð·ÑÐ°Ð±Ð¾ÑÐ°ÑÑ Ð¿ÑÐ¾ÑÐ¾ÑÐ¸Ð¿ ÑÐµÑÐ²Ð¸ÑÐ° Ð¿Ð¾ Ð¸Ð·Ð²Ð»ÐµÑÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¸Ð· Ð³ÑÐ°ÑÐ¾Ð²Ð¾Ð¹ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¸ Ð¸Ñ Ð¾Ð±Ð¾Ð³Ð°ÑÐµÐ½Ð¸Ñ. Ð ÑÐ¾Ð´Ðµ ÑÐ°Ð±Ð¾ÑÑ Ð±ÑÐ» ÑÐ°Ð·ÑÐ°Ð±Ð¾ÑÐ°Ð½ Ð¿ÑÐ¾ÑÐ¾ÑÐ¸Ð¿ ÑÐµÑÐ²Ð¸ÑÐ°, Ð¾ÑÐ¿ÑÐ°Ð²Ð»ÑÑÑÐ¸Ð¹ Ð·Ð°Ð¿ÑÐ¾ÑÑ Ðº Ð³ÑÐ°ÑÐ¾Ð²Ð¾Ð¹ Ð±Ð°Ð·Ðµ Ð´Ð°Ð½Ð½ÑÑ Ð¸ Ð¾Ð±Ð¾Ð³Ð°ÑÐ°ÑÑÐ¸Ð¹ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð½ÑÐµ Ð´Ð°Ð½Ð½ÑÐµ Ð¸Ð· Ð²Ð½ÐµÑÐ½ÐµÐ³Ð¾ ÑÐµÑÐ²Ð¸ÑÐ°. Ð ÑÐ¾Ð´Ðµ ÑÐ°Ð±Ð¾ÑÑ Ð±ÑÐ»Ð¸ ÑÐµÑÐµÐ½Ñ ÑÐ»ÐµÐ´ÑÑÑÐ¸Ðµ Ð·Ð°Ð´Ð°ÑÐ¸: 1) ÐÑÐ¾Ð°Ð½Ð°Ð»Ð¸Ð·Ð¸ÑÐ¾Ð²Ð°ÑÑ Ð¿ÑÐµÐ´Ð¼ÐµÑÐ½ÑÑ Ð¾Ð±Ð»Ð°ÑÑÑ Ð¸ Ð²ÑÐ¿Ð¾Ð»Ð½Ð¸ÑÑ Ð¿Ð¾ÑÑÐ°Ð½Ð¾Ð²ÐºÑ Ð·Ð°Ð´Ð°ÑÐ¸. 2) ÐÑÐ¾Ð°Ð½Ð°Ð»Ð¸Ð·Ð¸ÑÐ¾Ð²Ð°ÑÑ Ð¿ÑÐ¾Ð¸Ð·Ð²Ð¾Ð´Ð¸ÑÐµÐ»ÑÐ½Ð¾ÑÑÑ Ð¸ ÑÐ¾ÑÑÐ°Ð²Ð¸ÑÑ ÑÑÐ°Ð²Ð½Ð¸ÑÐµÐ»ÑÐ½ÑÑ ÑÐ°Ð±Ð»Ð¸ÑÑ ÑÐ°ÑÐ°ÐºÑÐµÑÐ¸ÑÑÐ¸Ðº Ð³ÑÐ°ÑÐ¾Ð²ÑÑ Ð¡Ð£ÐÐ. 3) ÐÑÐ¾Ð°Ð½Ð°Ð»Ð¸Ð·Ð¸ÑÐ¾Ð²Ð°ÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÐ¸ Ð²ÑÐ±ÑÐ°Ð½Ð½Ð¾Ð¹ Ð¡Ð£ÐÐ. 4) Ð¡Ð¾Ð·Ð´Ð°ÑÑ Ð¿ÑÐ¾ÑÐ¾ÑÐ¸Ð¿ ÑÐµÑÐ²Ð¸ÑÐ°. 5) Ð Ð°Ð·ÑÐ°Ð±Ð¾ÑÐ°ÑÑ Ð¼ÐµÑÐ¾Ð´Ñ ÑÐµÑÐ²Ð¸ÑÐ°. ÐÐµÑÐ²Ð°Ñ Ð³Ð»Ð°Ð²Ð° Ð¿Ð¾ÑÐ²ÑÑÐµÐ½Ð° Ð¾Ð±Ð·Ð¾ÑÑ Ð³ÑÐ°ÑÐ¾Ð²ÑÑ ÑÐ¸ÑÑÐµÐ¼ ÑÐ¿ÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð±Ð°Ð·Ð°Ð¼Ð¸ Ð´Ð°Ð½Ð½ÑÑ (Ð¡Ð£ÐÐ) Ð¸ Ð¸Ñ ÑÑÐ°Ð²Ð½Ð¸ÑÐµÐ»ÑÐ½Ð¾Ð¼Ñ Ð°Ð½Ð°Ð»Ð¸Ð·Ñ Ñ ÑÐ¿Ð¾ÑÐ¾Ð¼ Ð½Ð° ÑÑÐ½ÐºÑÐ¸Ð¾Ð½Ð°Ð»ÑÐ½ÑÐµ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÐ¸, Ð°ÑÑÐ¸ÑÐµÐºÑÑÑÐ½ÑÐµ Ð¾ÑÐ¾Ð±ÐµÐ½Ð½Ð¾ÑÑÐ¸ Ð¸ Ð¿ÑÐ¾Ð¸Ð·Ð²Ð¾Ð´Ð¸ÑÐµÐ»ÑÐ½Ð¾ÑÑÑ. Ð ÑÐ°Ð¼ÐºÐ°Ñ Ð³Ð»Ð°Ð²Ñ ÑÐ°ÑÑÐ¼Ð°ÑÑÐ¸Ð²Ð°ÑÑÑÑ ÑÑÐ¸ Ð¾ÑÐ½Ð¾Ð²Ð½ÑÐµ Ð³ÑÐ°ÑÐ¾Ð²ÑÐµ Ð¡Ð£ÐÐ: Neo4j, ArangoDB Ð¸ JanusGraph, Ñ Ð¿Ð¾Ð´ÑÐ¾Ð±Ð½ÑÐ¼ Ð¸Ð·ÑÑÐµÐ½Ð¸ÐµÐ¼ Ð¸Ñ ÑÐ°ÑÐ°ÐºÑÐµÑÐ¸ÑÑÐ¸Ðº Ð¸ Ð¿ÑÐ¸Ð¼ÐµÐ½Ð¸Ð¼Ð¾ÑÑÐ¸ Ð´Ð»Ñ Ð¼Ð¸Ð³ÑÐ°ÑÐ¸Ð¸ ÑÐµÐ»ÑÑÐ¸Ð¾Ð½Ð½ÑÑ Ð±Ð°Ð· Ð´Ð°Ð½Ð½ÑÑ. ÐÐ¾ Ð²ÑÐ¾ÑÐ¾Ð¹ Ð³Ð»Ð°Ð²Ðµ ÑÐ°ÑÑÐ¼Ð°ÑÑÐ¸Ð²Ð°ÑÑÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÐ¸ Ð³ÑÐ°ÑÐ¾Ð²Ð¾Ð¹ Ð¡Ð£ÐÐ JanusGraph, ÑÐ°ÑÑÐ¼Ð¾ÑÑÐµÐ½Ñ Ð¾ÑÐ½Ð¾Ð²Ð½ÑÐµ ÐºÐ¾Ð½ÑÐµÐ¿ÑÐ¸Ð¸ ÑÐ·ÑÐºÐ° Ð·Ð°Ð¿ÑÐ¾ÑÐ¾Ð² Gremlin, Ð²ÐºÐ»ÑÑÐ°Ñ Ð¾Ð¿ÐµÑÐ°ÑÐ¸Ð¸ Ð½Ð°Ð²Ð¸Ð³Ð°ÑÐ¸Ð¸, ÑÐ¸Ð»ÑÑÑÐ°ÑÐ¸Ð¸, Ð¼Ð°Ð½Ð¸Ð¿ÑÐ»ÑÑÐ¸Ð¸ Ð´Ð°Ð½Ð½ÑÐ¼Ð¸ Ð¸ Ð°Ð³ÑÐµÐ³Ð°ÑÐ¸Ð¸, Ð° ÑÐ°ÐºÐ¶Ðµ Ð¿ÑÐ¸Ð¼ÐµÑÑ Ð¸Ñ Ð¸ÑÐ¿Ð¾Ð»ÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ. Ð ÑÑÐµÑÑÐµÐ¹ Ð³Ð»Ð°Ð²Ðµ ÑÐ°Ð·ÑÐ°Ð±Ð°ÑÑÐ²Ð°ÐµÑÑÑ Ð°ÑÑÐ¸ÑÐµÐºÑÑÑÐ° ÑÐµÑÐ²Ð¸ÑÐ°, Ð¿ÑÐµÐ´Ð½Ð°Ð·Ð½Ð°ÑÐµÐ½Ð½Ð¾Ð³Ð¾ Ð´Ð»Ñ ÑÐ°Ð±Ð¾ÑÑ Ñ Ð³ÑÐ°ÑÐ¾Ð²Ð¾Ð¹ Ð±Ð°Ð·Ð¾Ð¹ Ð´Ð°Ð½Ð½ÑÑ. ÐÐ¿Ð¸ÑÑÐ²Ð°ÐµÑÑÑ ÑÑÑÑÐºÑÑÑÐ° Ð´Ð°Ð½Ð½ÑÑ, Ð¼ÐµÑÐ¾Ð´Ñ Ð¸Ð·Ð²Ð»ÐµÑÐµÐ½Ð¸Ñ Ð¸ Ð¾Ð±Ð¾Ð³Ð°ÑÐµÐ½Ð¸Ñ Ð¸Ð½ÑÐ¾ÑÐ¼Ð°ÑÐ¸Ð¸. Ð ÑÐµÑÐ²ÐµÑÑÐ¾Ð¹ Ð³Ð»Ð°Ð²Ðµ Ð¾Ð¿Ð¸ÑÑÐ²Ð°ÐµÑÑÑ Ð¿ÑÐ¾ÑÐµÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¿ÑÐ¾ÑÐ¾ÑÐ¸Ð¿Ð° ÑÐµÑÐ²Ð¸ÑÐ° Ð½Ð° Ð±Ð°Ð·Ðµ Ð²ÑÐ±ÑÐ°Ð½Ð½ÑÑ ÑÐµÑÐ½Ð¾Ð»Ð¾Ð³Ð¸Ð¹. ÐÑÐµÐ´ÑÑÐ°Ð²Ð»ÐµÐ½Ñ ÑÑÐ°Ð¿Ñ Ð²ÑÐ±Ð¾ÑÐ° Ð¸Ð½ÑÑÑÑÐ¼ÐµÐ½ÑÐ¾Ð², Ð¿ÑÐ¾ÐµÐºÑÐ¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð½ÑÐµÑÑÐµÐ¹ÑÐ¾Ð², ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¾ÑÐ½Ð¾Ð²Ð½ÑÑ Ð¼Ð¾Ð´ÑÐ»ÐµÐ¹, Ð²ÐºÐ»ÑÑÐ°Ñ ÐºÐ¾Ð½ÑÑÐ¾Ð»Ð»ÐµÑÑ Ð¸ ÑÐµÑÐ²Ð¸ÑÑ, Ð° ÑÐ°ÐºÐ¶Ðµ Ð¿ÑÐ¾Ð²ÐµÐ´ÐµÐ½Ð° Ð¿ÑÐ¾Ð²ÐµÑÐºÐ° ÑÑÑÐµÐºÑÐ¸Ð²Ð½Ð¾ÑÑÐ¸ ÑÐµÑÐ²Ð¸ÑÐ°, Ð¿ÑÑÐµÐ¼ ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ð²ÑÐµÐ¼ÐµÐ½Ð¸ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿ÑÐ¾ÑÐ¾Ð² Ðº ÑÐµÐ»ÑÑÐ¸Ð¾Ð½Ð½Ð¾Ð¹ Ð¸ Ð³ÑÐ°ÑÐ¾Ð²Ð¾Ð¹ Ð±Ð°Ð·Ð°Ð¼ Ð´Ð°Ð½Ð½ÑÑ.
description: The purpose of the final qualification work is to develop a prototype of a service for extracting data from a graph database and enriching it. During the work, a prototype of the service was developed that sends requests to a graph database and enriches the data received from an external service. In the course of the work, the following tasks were solved: 1) Analyze the subject area and complete the task statement. 2) Analyze the performance and compile a comparative table of graph DBMS characteristics. 3) Analyze the capabilities of the selected DBMS. 4) Create a prototype of the service. 5) Develop service methods. The first chapter is devoted to an overview of graph database management systems (DBMS) and their comparative analysis, focusing on functionality, architectural features and performance. The chapter examines three main graph databases: Neo4j, ArangoDB and JanusGraph, with a detailed study of their characteristics and applicability for relational database migration. The second chapter examines the capabilities of the JanusGraph graph database, discusses the basic concepts of the Gremlin query language, including navigation, filtering, data manipulation and aggregation operations, as well as examples of their use. The third chapter develops the architecture of a service designed to work with a graph database. The data structure, methods of information extraction and enrichment are described. The fourth chapter describes the process of creating a prototype service based on selected technologies. The stages of selecting tools, designing interfaces, creating basic modules, including controllers and services, are presented, and the effectiveness of the service is checked by comparing the execution time of queries to relational and graph databases.