在Mac上运行的Docker上部署了anzograph。
在查询控制台中使用以下insert命令,尝试使用示例电影演员文件加载数据,
INSERT { GRAPH <actors> {
?MovieIRI a <Movie> ;
<MovieTitle> ?MovieTitle .
?ActorIRI a <Actor> ;
<ActorName> ?ActorName .
?ActorIRI <ActedIn> ?MovieIRI .
}
}
WHERE { TABLE <file:/home/usera/movie-actors.csv>
('csv','leader',',',true,'MovieID:long,MovieTitle:char,ActorID:long,ActorName:char')
BIND(IRI(CONCAT("Movie",str(?MovieID))) as ?MovieIRI)
BIND(IRI(CONCAT("Actor",str(?ActorID))) as ?ActorIRI)
}在执行之后,我收到了错误,
错误-/home/usera/movie-actions.csv;没有这样的文件或目录
奇怪的是这个文件存在于上面的目录中。
发布于 2020-01-30 00:42:51
数据库正在运行Anzograph的docker容器中查找文件,而不是在文件所在的本地/主机上查找。
在执行insert命令之前,您需要将文件实际移动/复制到docker容器。
在Docker中,运行以下命令,访问anzograph的文件系统,即/opt/anzograph目录:
sudo docker exec -it anzograph_container_name /bin/bash
Where anzograph_container_name is要访问其文件系统的AnzoGraph容器的名称。例如:bash sudo docker exec -it /bin/bash
确定要在文件系统上放置加载文件的位置,并在必要时创建一个新目录。例如: mkdir /opt/anzograph/csv/
键入“exit”以退出容器。
运行以下Docker命令,将文件从主机服务器复制到AnzoGraph容器中的某个位置。sudo docker cp /路径/文件名区域图容器名称:/路径/目录
例如:电影sudo docker cp /home/usera/ -acters.csv anzograph:/opt/anzograph/csv/
或者此命令将一个目录复制到容器中:
sudo docker cp -r /path/目录名称anzograph_container_name:/路径
例如:电影sudo docker cp -r /主页/用户/电影演员.csv :/opt/anzograph/csv/
修改插入查询的WHERE子句中的路径以反映新位置。
发布于 2020-04-04 22:25:45
为了能够允许AnzoGraph从容器本地(覆盖)文件系统加载文件,您需要将它们放在那里。
正如前面所回答的,您可以将文件复制到容器中,但如果它们已经可以在docker主机上访问,那么只对它们进行卷装载可能是有意义的。
export data_p=/some/path/on/dockerhost
export data_c_p=/some/path/in/docker/container
docker run -d -v $data_p:data_c_p -p 80:8080 -p 443:8443 -p 5600:5600 -p 5700:5700 --name=anzograph cambridgesemantics/anzograph:2.1.1-latestAnzoGraph将在容器的$data_c_p中看到您放入$data_p中的文件
https://stackoverflow.com/questions/59971744
复制相似问题