6

当我在 Azure 门户中创建新的 CosmosDB 数据库时,我必须在各种 API(Gremlin、MongoDB、SQL/DocumentDB 和 Table)之间进行选择。

与 Azure 门户的许多其他限制一样,我希望有一种方法可以将新的 CosmosDB 配置为使用 PowerShell 或 Azuzre cli 使用多个 API。

有没有办法向我的 CosmosDB 实例添加额外的 API?如果没有,将来会有办法做到这一点吗?

更新: 我刚刚使用 Mongo api 创建了一个 Cosmos DB 帐户,并注意到查询资源管理器仍然可用,并允许我输入和执行 SQL/DocumentDB 查询,所以显然默认是允许两个 API(Mongo 和 SQL /文档数据库)。但是,我不确定如何获取 ConnectionString (AccountKey),以便我可以像 azure 门户在我自己的客户端中那样使用 DocumentDB/SQL API。任何人都知道如何使用 Mongo API 从 CosmosDB 设置连接字符串,使其成为 DocumentDB/Sql API 的有效连接字符串?

4

3 回答 3

6

您可以通过执行以下操作在同一个 CosmosDB 帐户中同时使用 MongoDB API 和 DocumentDB/Sql API(这可能也适用于使用 Gremlin 和 Table API 设置的 CosmosDB 帐户,但我还没有尝试过。):

首先,使用 MongoDB API 创建一个新的 CosmosDB 帐户。配置此新 CosmosDB 帐户后,您将无法像使用已配置 DocumentDB/Sql API 的 CosmosDB 帐户那样找到“密钥”刀片。

要获取将客户端连接到 DocumentDB/Sql api 所需的密钥,请运行以下Azure CLI 命令

az cosmosdb list-keys --name "<your cosmosdb account name>" --resource-group "<name of resource group your cosmosdb lives in>"

现在,您可以在您正在使用的任何客户端 API(.Net、Python 等)中使用这些密钥之一,并对您的 CosmosDB 执行 DocumentDB/Sql 查询,即使它仅配置为使用 MongoDB api。

如果您的客户端 API 需要一个“连接字符串”而不仅仅是一个密钥,则编辑普通连接字符串以将该密钥包含在字符串的“帐户密钥”部分中。

于 2017-06-01T00:16:30.843 回答
2

与 Azure 门户的许多其他限制一样,我希望有一种方法可以将新的 CosmosDB 配置为使用 PowerShell 或 Azuzre cli 使用多个 API。

AFAIK,Azure Cosmos DB 目前支持多种数据模型(键值、文档、图表和柱状)。并且每个数据模型都有用于访问数据的相关 API,包括MongoDBDocumentDB SQLGremlin(预览版)和Azure Tables(预览版)。

创建 Azure Cosmos DB 数据库帐户时,需要选择具有相关 API 的数据模型(Azure Cosmos DB 数据库帐户的类型)。

作为Create an Azure Cosmos DB account using the Azure CLI说明了kind用于创建数据库帐户的参数:

要创建的 Azure Cosmos DB 数据库帐户的类型。

允许的值:GlobalDocumentDBMongoDB、 Parse。

默认值: GlobalDocumentDB

有没有办法向我的 CosmosDB 实例添加额外的 API?如果没有,将来会有办法做到这一点吗?

据我所知,您没有办法实现它。此外,您可以在此处添加您的反馈。

于 2017-05-30T02:37:02.693 回答
1

这里的答案不再有效,不。虽然在技术上可能是可行的。您必须坚持创建数据库时选择的那个。

唯一可能的组合是 Gremlin 和 SQL API。从这里阅读

https://docs.microsoft.com/en-us/azure/cosmos-db/faq#can-i-use-multiple-apis-to-access-my-data

于 2021-08-10T04:26:57.170 回答