TuGraph-family / tugraph-db

TuGraph: A High Performance Graph Database.
https://tugraph.org
Apache License 2.0
1.43k stars 191 forks source link

[Feature Request] 数据迁移功能 #706

Open johnmai-dev opened 1 month ago

johnmai-dev commented 1 month ago

Is your feature request related to a problem? Please describe.

目前,Tugraph缺乏友好的数据迁移功能,后台提供的导出的JSON和CSV文件无法反向导入。 image

Describe the solution you'd like

  1. 实现子图之间的迁移功能
  2. 支持跨Tugraph的迁移
  3. 部分节点和边的迁移,通过指定Cypher查询数据并导出,再导入到指定子图中

希望能实现类似Navicat的数据迁移工具。

image

ljcui commented 1 month ago

比较通用灵活的做法:写python脚本,用cypher语句读数据,数据写到csv文件;然后再用python脚本读csv文件,用cypher语句批量插入数据,写入到新的子图或者新的实例。

zhangwh807 commented 1 month ago

上述的第1,2两个可以使用CALL db.importor.fullFileImportor("${新的图项目名称}",".mdb文件",false)语句

参数说明: ● 第一个参数是新子图名称。这个子图如果已经存在,那么该子图的数据会替换为第二个参数填写的.mdb文件对应的图的数据。如果子图不存在会生成一个新子图。 ● 第二个参数是服务器上的文件绝对路径,服务器上要有这个文件才行,这个是db的数据存储文件 ● 第三个是文件是否是远程文件,如果是服务器的本地文件就设置为false或者不设置也行 示例: CALL db.importor.fullFileImportor("test","/var/lib/lgraph/data/EF1AF796FA251C1C8C9F67793D33FF17/data.mdb",false)

注:数据储存在容器内/var/lib/lgraph/data路径下,该路径下一个长字符串的目录存储一个图项目的数据,进入到具体的代表每个图的长字符串目录下有.mdb文件,该文件是具体的模型和数据文件