azure - 如何将 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:
测试输出连接时出现故障和上面列出的错误。
解决方案
我收到了来自 Microsoft 支持的回复,指出 Azure 流分析不再支持通过“{partition}”令牌模式指定分区。此外,通常不推荐从 ASA 写入多个容器。现在,如果 ASA 输出到配置了分区的 CosmosDb,Cosmos 应该自动处理它。
在与我们的 ASA 开发人员/产品组团队讨论后,不再支持诸如 MyCollection{partition} 或 MyCollection/{partition} 之类的收集模式。不推荐使用写入多个固定容器,并且不推荐将其用于扩展流分析作业 [...] 总之,您可以将集合名称简单地定义为“apitraffic”。您无需指定任何分区键,因为我们会从 Cosmos DB 自动检测到它。
推荐阅读
- ios - ios webview将状态栏背景设置为白色,字体颜色设置为黑色
- json - jq 过滤符合两个条件之一的日志
- java - java eclipse导入错误指swing,awt
- postgresql - docker postgres 无法更改 pgdata 权限
- android - 画布尺寸是否因 Android 中使用的设备类型而异?
- laravel - 为什么 PHPUnit 看不到 Laravel Facades?
- java - Kotlin 中的任何变量名
- prolog - Prolog:如何检查当前评估的子句是否被剪切?
- python - 基维;如何在 python 代码中识别 KV 语言宽度?
- c# - 在 Windows 窗体应用程序中刷新画布的问题