首页 > 解决方案 > 如何将 CosmosDb 与分区键一起用作流分析输出?

问题描述

我正在使用分区键设置 CosmosDb 作为流分析作业输出,连接测试失败并出现以下错误:

连接到 Cosmos DB 数据库时出错:使用集合模式“容器名称/{partition}”找到无效或没有匹配的集合。集合必须 > 以从 >0 开始的递增数字顺序以区分大小写的模式存在。

注意:我将 cosmosdb 与 SQL API 一起使用,但配置是通过 portal.azure.com 完成的

我已经确认我可以通过门户数据资源管理器手动将文档插入 DocumentDB。这些插入成功并且正确识别了分区键值。

我这样设置 Cosmos 容器

Database Id: testdb
Container id: containername
Partition key: /partitionkey
Throughput: 1000

我像这样设置流分析输出

Output Alias: test-output-db
Subscription: My-Subscription-Name
Account id: MyAccountId
Database -> Use Existing: testdb
Collection name pattern: containername/{partition}
Partition Key: partitionkey
Document id: 

测试输出连接时出现故障和上面列出的错误。

标签: azureazure-cosmosdbazure-stream-analytics

解决方案


我收到了来自 Microsoft 支持的回复,指出 Azure 流分析不再支持通过“{partition}”令牌模式指定分区。此外,通常不推荐从 ASA 写入多个容器。现在,如果 ASA 输出到配置了分区的 CosmosDb,Cosmos 应该自动处理它。

在与我们的 ASA 开发人员/产品组团队讨论后,不再支持诸如 MyCollection{partition} 或 MyCollection/{partition} 之类的收集模式。不推荐使用写入多个固定容器,并且不推荐将其用于扩展流分析作业 [...] 总之,您可以将集合名称简单地定义为“apitraffic”。您无需指定任何分区键,因为我们会从 Cosmos DB 自动检测到它。


推荐阅读