当我在Azure门户中创建新的CosmosDB数据库时,我必须在各种API(Gremlin,MongoDB,SQL / DocumentDB和Table。)之间进行选择。
与Azure门户的许多其他限制一样,我希望有一种方法可以使用PowerShell或Azuzre cli配置新的CosmosDB以使用多个API。
有没有办法在我的CosmosDB实例中添加其他API?如果没有,将来有没有办法做到这一点?
更新 我刚刚使用Mongo api创建了一个Cosmos DB帐户,并注意到Query Explorer仍然可用,并且允许我输入并执行SQL / DocumentDB查询,所以显然默认是允许两个API(Mongo和SQL / DocumentDB) )。但是,我不确定如何获取ConnectionString(AccountKey),以便我可以像azure门户在我自己的客户端中那样使用DocumentDB / SQL API。任何人都有关于如何使用Mongo API从CosmosDB设置连接字符串的想法,以便它是DocumentDB / Sql API的有效连接字符串?
答案 0 :(得分:5)
通过执行以下操作,您可以在同一个CosmosDB帐户中同时使用MongoDB API和DocumentDB / Sql API(这可能也适用于使用Gremlin和Table API设置的CosmosDB帐户,但我还没有尝试过它们还):
首先,使用MongoDB API创建一个新的CosmosDB帐户。一旦配置了这个新的CosmosDB帐户,您就无法找到"密钥"使用已使用DocumentDB / Sql API配置的CosmosDB帐户,可以使用刀片。
要获取将客户端连接到DocumentDB / Sql api所需的密钥,请运行以下Azure CLI Command:
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需要&#34;连接字符串&#34;而不只是一个键,然后编辑正常的连接字符串,以将此键包含在&#34; AccountKey&#34;字符串的一部分。
答案 1 :(得分:2)
与Azure门户的许多其他限制一样,我希望有一种方法可以使用PowerShell或Azuzre cli配置新的CosmosDB以使用多个API。
AFAIK,Azure Cosmos DB目前支持多种数据模型(键值,文档,图形和列式)。每个数据模型都有相关的API来访问数据,包括MongoDB,DocumentDB SQL,Gremlin(预览)和Azure Tables(预览)。
创建Azure Cosmos DB数据库帐户时,需要选择包含相关API的数据模型(Azure Cosmos DB数据库帐户的类型)。
正如Create an Azure Cosmos DB account using the Azure CLI所述,关于创建数据库帐户的kind
参数:
要创建的Azure Cosmos DB数据库帐户的类型。
允许值: GlobalDocumentDB , MongoDB ,Parse。
默认值:GlobalDocumentDB 。
有没有办法在我的CosmosDB实例中添加其他API?如果没有,将来有没有办法做到这一点?
众所周知,没有办法让你实现它。此外,您可以添加反馈here。
答案 2 :(得分:0)
这里的答案不再有效,不可以。虽然这在技术上是可行的。您必须坚持创建数据库时选择的那个。
唯一可能的组合是 Gremlin 和 SQL API。从这里阅读
https://docs.microsoft.com/en-us/azure/cosmos-db/faq#can-i-use-multiple-apis-to-access-my-data