如何在我的 Cosmos Graph DB 中获取可用的 Graph 容器列表?
How to get available Graph container list in my Cosmos Graph DB?
我正在尝试获取我的 Cosmos 图形数据库的元数据信息。此数据库中创建了许多图,我想列出这些图的名称。
在 Gremlin API 中,我们支持连接到任何 Graph DB 容器,然后我们可以按照我在下面的代码示例中提到的那样提交查询。但是在这里我们需要一个 {collection} 也是我们的 GraphName。所以不知何故我们在这里绑定到一个特定的图。
var gremlinServer = new GremlinServer(hostname, port, enableSsl: true,
username: "/dbs/" + database + "/colls/" + collection,
password: authKey);
using (var gremlinClient = new GremlinClient(gremlinServer, new GraphSON2Reader(), new GraphSON2Writer(), GremlinClient.GraphSON2MimeType))
{
gremlinClient.SubmitAsync(query);
}
有什么方法可以让我们只连接到 GraphDB 并获取一些元数据信息吗?例如,在我的例子中,可用图表列表。
看起来 Gremlin 客户端是在集合级别(即图形)实现的,因此无法使用 gremlin 连接从一个帐户/数据库枚举图形。
您始终可以使用 CosmosDB SDK 连接到帐户并枚举 databases/collections,然后使用 Gremlin 客户端分别连接到每个帐户。
Install-Package Microsoft.Azure.Cosmos
using (var client = new CosmosClient(endpoint, authKey))
{
var dbIterator = client.GetDatabaseQueryIterator<DatabaseProperties>();
while(dbIterator.HasMoreResults)
{
foreach (var database in await dbIterator.ReadNextAsync())
{
var containerIterator = database.GetContainerQueryIterator<ContainerProperties>();
while (containerIterator.HasMoreResults)
{
foreach (var container in await containerIterator.ReadNextAsync())
{
Console.WriteLine($"{database.Id} - {container.Id}");
}
}
}
}
}
我正在尝试获取我的 Cosmos 图形数据库的元数据信息。此数据库中创建了许多图,我想列出这些图的名称。
在 Gremlin API 中,我们支持连接到任何 Graph DB 容器,然后我们可以按照我在下面的代码示例中提到的那样提交查询。但是在这里我们需要一个 {collection} 也是我们的 GraphName。所以不知何故我们在这里绑定到一个特定的图。
var gremlinServer = new GremlinServer(hostname, port, enableSsl: true,
username: "/dbs/" + database + "/colls/" + collection,
password: authKey);
using (var gremlinClient = new GremlinClient(gremlinServer, new GraphSON2Reader(), new GraphSON2Writer(), GremlinClient.GraphSON2MimeType))
{
gremlinClient.SubmitAsync(query);
}
有什么方法可以让我们只连接到 GraphDB 并获取一些元数据信息吗?例如,在我的例子中,可用图表列表。
看起来 Gremlin 客户端是在集合级别(即图形)实现的,因此无法使用 gremlin 连接从一个帐户/数据库枚举图形。
您始终可以使用 CosmosDB SDK 连接到帐户并枚举 databases/collections,然后使用 Gremlin 客户端分别连接到每个帐户。
Install-Package Microsoft.Azure.Cosmos
using (var client = new CosmosClient(endpoint, authKey))
{
var dbIterator = client.GetDatabaseQueryIterator<DatabaseProperties>();
while(dbIterator.HasMoreResults)
{
foreach (var database in await dbIterator.ReadNextAsync())
{
var containerIterator = database.GetContainerQueryIterator<ContainerProperties>();
while (containerIterator.HasMoreResults)
{
foreach (var container in await containerIterator.ReadNextAsync())
{
Console.WriteLine($"{database.Id} - {container.Id}");
}
}
}
}
}