Представляем Gremlin The Graph Database


Выпущен последний набор технологий от группы разработки программного обеспечения с открытым исходным кодом TinkerPop, которые работают в области графовых баз данных. TinkerPop 2.4 включает фреймворки графовых баз данных, пакеты алгоритмов и серверы и получил название «Gremlin Without a Cause».

Название является каламбуром на том факте, что Gremlin, язык запросов к базе данных графов, является одной из основных причин, по которой был создан TinkerPop, а также дал группе возможность разработать логотип, изображающий Джеймса Дина, одетого как Гремлин.

Если вы не знакомы с графовыми базами данных, они используют структуру описания ресурсов, RDF. В RDF все выражения представляют собой наборы троек, каждое из которых состоит из субъекта и объекта, а также предиката или свойства, которое обозначает связь между субъектом и объектом.

Если вы хотите изобразить тройку:

Фред живет в Денвере

у вас может быть узел с именем Fred, другой узел с именем Denver, а предикатом может быть «City» (или, возможно, «Address» для более подробных данных).

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

Gremlin — это язык, который может кратко выражать маршруты через граф, включая эти и другие операции. Это доменно-ориентированный язык (DSL), написанный на Groovy, который компилируется до конвейеров.

Ядром стека TinkerPop является фреймворк Blueprints, который Марко Родригес, главный разработчик TinkerPop, описывает как «JDBC графических баз данных». Blueprints предоставляет набор общих интерфейсов, которые означают, что вы можете разрабатывать приложения на основе графов, не вводя явных зависимостей от конкретных реализаций Graph Database. Он также предоставляет конкретные привязки для графовых баз данных Neo4J, OrientDB и Dex. Гремлин сидит на вершине этой структуры.

Основные изменения в Blueprints в этом выпуске начинаются с того факта, что VertexQuery и GraphQuery API теперь используют общие предикаты, поэтому добавлена поддержка предикатов push-down. В GraphFactory добавлена поддержка динамического определения конструкторов графов.

Pipes — это фреймворк потока данных TinkerPop, использующий графы процессов. Граф процесса состоит из вершин трубы, соединенных коммуникационными ребрами. В этой новой версии он полностью поддерживает оператор предиката в Blueprints.

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


Добавить комментарий