使用Gremlin Python驱动程序在CosmosDB中删除并填充一个大图

时间:2018-12-01 12:32:16

标签: python azure-cosmosdb gremlin

我正在基于sample CosmosDB 上使用Python拖放并重新创建一个大图。 使用g.V().drop()删除图形,使用g.V().addV...创建顶点,使用g.V().addE...创建边。

但是,在可变数量的项目或时间之后多次运行该过程时,添加被卡住-client.submitAsync()没有结果。

1 个答案:

答案 0 :(得分:0)

addE()addV()语句之前进行检查时,我发现图在drop()之后并没有完全为空。似乎需要几秒钟。

因此,在我继续执行drop()操作之前,我在add之后放置了一个循环,直到图形完全为空为止。

def drop_graph(client):

    client.submitAsync("g.V().drop()").result()

    remain = None
    while remain != 0:
        callback = client.submitAsync("g.V().count()")
        for result in callback.result():
            previous = remain
            remain = result[0]
            print('remaining nodes {}'.format(remain))
            if remain > 0:
                sleep(1)
            if previous == remain:
                client.submitAsync("g.V().drop()").result()

编辑gremlin.python.driver或后端Gremlin服务器上似乎都存在错误-在某些情况下,删除所有顶点没有任何进展。为此,我添加了另一个drop()的启动程序,以防剩余节点不减少。