如何在arangoDB中备份/转储图形结构。

4

有没有一种方法可以转储arangoDB数据库的图形结构,因为arangodump只转储边和集合的数据。


你尝试过使用 arangodump --dump-data false --include-system-collections true --output-directory "dump" 命令吗?其中,你需要指定 --dump-data false--include-system-collections true 参数,这样只会导出结构信息。 - Raf
"--include-system-collections true" 做到了这一点。作为来自 SQL 世界的人,我没有预料到系统集合中存在图形结构。谢谢。 - smurf
4个回答

4
根据文档,要转储所有集合(包括系统集合)的结构信息,请运行以下命令:
arangodump --dump-data false --include-system-collections true --output-directory "dump"

如果您不想包括系统集合,请不要提供参数(它默认为false)或提供false值。
关于收集的结构和数据如何转储,请参见文档:这里


一个集合的结构信息将保存在文件中,文件名模式为.collectionname.structure.json。每个结构文件都包含一个JSON对象,其中包含以下属性:

parameters:包含集合属性

indexes:包含集合索引

一个集合的文档数据将保存在文件中,文件名模式为.collectionname.data.json。 数据文件中的每一行都是一个文档插入/更新或删除标记,以及一些元数据。


1
尽管@Raf的答案被接受,--dump-data false只会提供所有集合的结构文件,但数据不会存在。包括--include-system-collections true将提供_graphs系统集合的结构,但不会涉及个别图形的创建/结构信息。

对于图形创建数据

正确的命令如下。

arangodump --server.database <DB_NAME> --include-system-collections true --output-directory <YOUR_DIRECTORY>

我们对名为_graphs_<long_id>.data.json的文件感兴趣,该文件具有以下数据格式。

{
    "type": 2300,
    "data":
    {
        "_id": "_graphs/social",
        "_key": "social",
        "_rev": "_WaJxhIO--_",
        "edgeDefinitions": [
            {
                "collection": "relation",
                "from": ["female", "male"],
                "to": ["female", "male"]
            }
        ],
        "numberOfShards": 1,
        "orphanCollections": [],
        "replicationFactor": 1
    }
}

希望这能帮助其他寻找我需求的用户!


1

为了测试,我经常需要提取具有已知结构的子图。我用它来测试我的查询。这种方法并不美观,但它可能回答了你的问题。我在这里写了一篇博客。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接