Как использовать Cayley с бэкэндом Postgres?
В соответствии с этой проблемой Github реализована бэкэнд-функция Postgres для графовой базы данных 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"
1 ответ
Похоже, Кейли использует lib/pq под прикрытием. Строки подключения lib/pq выглядят примерно так: "user=pqgotest dbname=pqgotest sslmode=verify-full"
или же "postgres://pqgotest:password@localhost/pqgotest?sslmode=verify-full"
Для получения полной информации см. Документацию lib/pq на godoc.org.
(Вы можете увидеть, где выполняется вызов sql.Open в cayley / graph / sql / quadstore.go connectSQLTables
.)