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

Разработка языка запросов к графовому хранилищу билллинговой информации
3
ных из хранилища используется запрос, содержащий шаблон филь-
трации, позволяющий получать:
(n)-->(m)
— все направленные ребра из вершины
n
в вершину
m
;
(n:Person)
— все вершины с меткой
Person
;
(n:Person:Russian)
— все вершины, имеющие обе метки
Person
и
Russian
;
(n:Person {name:{value}})
— все вершины с меткой
Person
и от-
фильтрованные по дополнительному свойству;
(n:Person)-->(m)
— ребра между вершинами
n
с меткой
Person
и
m
;
(n)--(m)
— все ненаправленные ребра между вершинами
n
и
m
;
Одно из главных преимуществ языка Cypher
выразительный
SQL-подобный синтаксис, привычный для большинства пользовате-
лей баз данных. Кроме того, независимо от потенциального расши-
рения своих возможностей этот языка будет оставаться достаточно
простым.
Язык запросов Gremlin
поддерживается базой данных Titan [8].
Gremlin позволяет выполнять базовые операции с элементами графа
(создание, обновление и удаление вершин, ребер, меток и свойств).
Однако, в отличие от Cypher, данный язык является императивным и
основан на идее последовательного применения функций к исходно-
му графу и промежуточным результатам, благодаря чему можно вы-
полнять обходы и проводить фильтрацию. Основные функции языка
Gremlin позволяют получить:
V
— все вершины (с возможностью фильтрации по заданному
ключу и значению);
E
— все ребра (с возможностью фильтрации по заданному клю-
чу и значению);
id
— идентификатор элемента;
label
— метку элемента;
out(labels,…)
/
in(labels,…)
/
both(labels,…)
— смежные верши-
ны (по исходящим / входящим / всем ребрам) для заданного набора
вершин;
outE(labels,…)
/
inE(labels,…)
/
bothE(labels,…)
— инцидентные
исходящие / входящие / все ребра по заданному набору вершин
.
Благодаря императивному подходу язык Gremlin дает наиболее
полное представление о выполняемых над графом операциях и их
последовательности. Кроме того, поддержка интерфейса Blueprints
[9] на основе реализации языка Gremlin обеспечивает возможность
применения библиотек стандартных алгоритмов на графах к данным
графового хранилища.
Разработка собственного языка запросов.
Подводя итог рас-
смотрения существующих языков запросов, необходимо отметить,
1,2 4,5,6,7,8,9,10
Powered by FlippingBook