Что это?
Cayley — графовая база данных с открытым кодом для связанных данных (Linked Data), созданная по образцу графовой базы, которая стоит за Knowledge Graph от Google (ранее Freebase).
Это сервер, который я запускаю, или библиотека, которую я встраиваю в свой код?
Это сервер базы данных, который вы запускаете, но он намеренно модульный — в README отдельно подчёркивается, что его легко подключать к вашим любимым языкам программирования и хранилищам данных.
Как его запустить?
В репозитории лежит Dockerfile, поэтому Docker — самый быстрый путь; иначе можно собрать из исходников с помощью Go. Когда всё поднято, работа идёт через встроенный редактор запросов, визуализатор или REPL.
Нужно ли ставить какое-то другое ПО вместе с ним?
Нет — это самодостаточная программа на Go, которая сама управляет своим хранилищем, так что заранее настраивать отдельный движок базы данных или брокер не придётся.
Есть ли подводные камни или ограничения, о которых стоит знать?
В README никаких жёстких ограничений не указано, там сказано, что Cayley готова к продакшену, хорошо протестирована и используется в продакшене разными компаниями — но опубликованные данные о производительности получены на потребительском железе 2014 года.
Когда выбрать её вместо обычной SQL-базы?
Когда данные у вас строятся вокруг связей — связанные данные в духе базы знаний, где вы идёте по связям между сущностями, как в графе Freebase, который она повторяет, — а не по строкам в таблицах.
Он работает только на Linux-серверах или у меня тоже на ноутбуке?
Везде, где собирается Go — Linux, macOS и Windows; обычно его размещают на своём сервере, Dockerfile есть в репозитории, а редактор запросов открывается прямо в браузере.
Как запрашивать данные?
Внутри уже три языка запросов: Gizmo, вдохновлённый Gremlin; язык в духе GraphQL; и MQL — упрощённая версия для поклонников Freebase.
Сколько данных он выдержит?
По приблизительным замерам, 134 миллиона квадов хранились в LevelDB, а поиск с пересечением на несколько переходов — фильмы с участием X и Y — занимал около 150 мс на обычном диске.
Что такое квад, если по-простому?
Утверждение из мира связанных данных из четырёх частей — субъект, предикат, объект и одно дополнительное значение, например контекст. Именно в таких единицах Cayley хранит факты своего графа.
Which topics is it in?
graph-database, graph, nosql, graphql, knowledge-graph, database, go, apache-2.0, server, docker, self-hosted, cli