Как использовать Cayley с серверной частью Postgres?

Согласно этой проблеме Github, серверная функция Postgres для графовая база данных Cayley реализована. Однако в настоящее время в документах нет примеров, и я не мог понять это, прочитав код. Может ли кто-нибудь помочь?

Изменить

Чтобы начать играть с Cayley, мы можем загрузить данные, которые поставляются с исходным кодом, с помощью следующей команды:

./cayley load --config=cayley.cfg.overview --quads=data/30kmoviedata.nq.gz

Я попробовал два варианта файла cayley.cfg.overview:

{
    "database": "sql",
    "db_path": "localhost:5432",
    "read_only": false
}

а также

{
    "database": "sql",
    "db_path": "/var/lib/postgresql/9.4/main/cayley",
    "read_only": false
}

Первый аналогичен тому, который используется с mongo (5432 — это порт, на котором прослушивается сервер postgres). Что касается второго, я понятия не имею, что я там делаю :D.

В любом случае, когда я использую команду ./cayley load --config=cayley.cfg.overview --quads=data/30kmoviedata.nq.gz, я получаю следующую ошибку (изменяя только значение db_path):

Couldn't open database at localhost:5432: 
&errors.errorString{s:"missing \"=\" after \"127.0.0.1:5432\" in connection 
info string\""}
E1117 21:09:18.300033 16689 cayley.go:277] missing "=" after "localhost:5432" 
in connection info string"

person Marcus Vinícius Monteiro    schedule 17.11.2015    source источник
comment
Можете ли вы опубликовать то, что у вас есть сейчас, и предоставить более конкретную информацию о том, с какой ошибкой вы столкнулись? Было бы более конструктивно ставить каждую конкретную ошибку в виде вопроса, поскольку настройка системы может быть довольно открытой (например, вы застряли на ошибке A и решаете ее, чтобы найти ошибку B, а затем получить ошибку C и т. д.).   -  person evanmcdonnal    schedule 18.11.2015
comment
@evanmcdonnal Я предоставил более подробную информацию.   -  person Marcus Vinícius Monteiro    schedule 18.11.2015
comment
Можете ли вы попробовать использовать вашу конфигурацию localhost:5432, но с "database":"mongo"? В большинстве примеров значение равно leveldb, в документах одно из значений равно mongo, однако, насколько я могу судить, значения sql нет. В промежутках между моей другой работой я отследю этот файл (caylay.go) и посмотрю, что там происходит, потому что ошибка будет указывать на то, что в конце должно быть равенство, но я не вижу примеров, которые имеют что-то отдаленно похожее (не то, чтобы это строка подключения sql и после этого имеет учетные данные и т. д.).   -  person evanmcdonnal    schedule 18.11.2015
comment
Нашел часть того, что ищу. Здесь вы ошибаетесь, вызов Load возвращает эту ошибку github.com/google/cayley/blob/master/cmd/cayley/cayley.go#L209   -  person evanmcdonnal    schedule 18.11.2015
comment
@evanmcdonnal использует конфигурацию с "database": "mongo", если для использования с серверной частью mongodb. Для database существует значение sql (см. источник ), однако это не задокументировано, и я еще не смог понять это.   -  person Marcus Vinícius Monteiro    schedule 18.11.2015
comment
Что ж, этот ответ кажется многообещающим. Я просто предложил использовать mongo, потому что вы сказали, что ваша строка подключения аналогична ей.   -  person evanmcdonnal    schedule 18.11.2015
comment
@evanmcdonnal да, я проверю этот ответ.   -  person Marcus Vinícius Monteiro    schedule 18.11.2015


Ответы (1)


Похоже, Кейли использует lib/pq под прикрытием. Строки подключения lib/pq выглядят примерно так: "user=pqgotest dbname=pqgotest sslmode=verify-full" или "postgres://pqgotest:password@localhost/pqgotest?sslmode=verify-full" Подробную информацию см. в документации по lib/pq по адресу . www.godoc.org.

(Вы можете увидеть, где выполняется вызов sql.Open, в cayley/graph/sql/quadstore.go connectSQLTables.)

person Dmitri Goldring    schedule 18.11.2015
comment
Я получил это после проверки godocs, спасибо! После этого я столкнулся с ошибкой, в которой говорилось, что db: failed to load data: pq: relation "quads" does not exist, которую я обошел, создав таблицу quads по запросу, найденному на github.com/google/cayley/blob/master/graph/sql/quadstore.go. После этого мне удалось загрузить данные. - person Marcus Vinícius Monteiro; 18.11.2015