使用Cosmos DB Graph-API一次插入多个顶点

kmc*_*mee 6 gremlin azure-cosmosdb

我希望使用Azure Cosmos DB Graph-API快速插入多个顶点.大多数当前的Microsoft示例逐个创建顶点并为每个顶点执行Gremlin查询,如下所示:

IDocumentQuery<dynamic> query = client.CreateGremlinQuery<dynamic>(graph, "g.addV('person').property('id', 'thomas').property('name', 'Thomas').property('age', 44)");

while (query.HasMoreResults)
{                    
    foreach (dynamic result in await query.ExecuteNextAsync())  {   
        Console.WriteLine($"\t {JsonConvert.SerializeObject(result)}"); 
    }
    Console.WriteLine();
}


query = client.CreateGremlinQuery<dynamic>(graph, "g.addV('person').property('id', 'mary').property('name', 'Mary').property('lastName', 'Andersen').property('age', 39)");

while (query.HasMoreResults)
{                    
    foreach (dynamic result in await query.ExecuteNextAsync())  {   
        Console.WriteLine($"\t {JsonConvert.SerializeObject(result)}"); 
    }
    Console.WriteLine();
}
Run Code Online (Sandbox Code Playgroud)

然而,当我想创建几千个顶点和边缘以初始填充图形时,这不太理想,因为这可能需要一些时间.

这是与Microsoft.Azure.Graphs库v0.2.0-preview

如何有效地将多个顶点一次添加到Cosmos DB中,以便稍后使用Graph API语法进行查询?

Jes*_*ter 6

我发现种子图的最快方法实际上就是使用Document API.利用这种技术,我已经能够在一台开发机器上每秒插入5500多个顶点/边.诀窍是理解Cosmos对边缘和顶点的期望格式.只需通过gremlin API向图表添加几个顶点和边,然后通过转到Azure中的Data Explorer并执行文档查询来检查这些文档的格式SELECT * FROM c.

在工作中,我构建了一个轻型ORM,它使用反射来获取边和顶点的POCO,并将它们转换为您在门户中看到的格式.我希望尽快开源,此时我很可能会发布一个Nuget包和随附的博客文章.希望在此期间,这将有助于指明您正确的方向,如果您对此方法有更多疑问,请告诉我.