Разработка языка запросов к графовому хранилищу биллинговой информации - page 2

М.В. Бартенев, И.Э. Вишняков
2
Задачи языка запросов.
Рассмотрим основные функции, кото-
рые должен предоставлять язык запросов к графовому хранилищу
биллинговой информации:
создание экземпляра графовой базы данных с определенным
идентификатором;
удаление экземпляра базы данных по идентификатору;
очистка базы данных от всех хранящихся в ней объектов;
добавление вершины со строковым идентификатором в граф;
добавление ребра, соединяющего две вершины, в граф (воз-
можно указание даты добавления ребра);
удаление вершины из графа по идентификатору;
удаление ребра из графа по идентификаторам вершин, которые
оно соединяет;
импорт данных в хранилище из файла, содержащего список
ребер;
выборка данных из хранилища с помощью последовательно
примененных аналитических операций.
При импорте данных каждая строка файла имеет следующий вид:
{source_node; destination_node; [time]}
,
где
source_node
— строковое значение, идентифицирующее началь-
ную вершину ребра;
destination_node
— строковое значение, иденти-
фицирующее конечную вершину ребра;
time
— необязательная вре-
меннáя метка ребра.
Аналитические операции должны быть представлены в виде од-
ной из функций [1]:
поиск соседних вершин для заданной вершины;
пересечение найденных соседей двух вершин.
На вход любой функции подаются список вершин и глубина по-
иска. Список вершин может быть задан изначально или представлять
собой результат работы другой функции. Аналогично к подграфу,
являющемуся результатом работы некоторой функции, может быть
применена другая аналитическая функция.
Обзор существующих языков запросов.
На текущий момент
имеется два языка запросов к графовым базам данных, которые ис-
пользуются в тех или иных системах и развитие которых активно
продолжается: Cypher [6] и Gremlin [7].
Язык запросов Cypher
— самый распространенный язык запро-
сов к графовым базам данных, что обусловлено его использованием в
СУБД Neo4J [2]. Cypher является декларативным языком и позволяет
создавать, обновлять и удалять вершины, ребра, метки и свойства, а
также управлять индексами и ограничениями. Для извлечения дан-
1 3,4,5,6,7,8,9,10
Powered by FlippingBook