使用DocumentDB作为接收器在Azure流分析中获取错误

问题描述 投票:0回答:1

我正在使用Azure Stream Analytics将事件中心的事件流式传输到DocumentDB。我已经记录了输入,查询和输出,使用示例数据对其进行了测试,并设法按预期返回结果。

但是,当我启动流式传输作业并发送与之前的示例数据相同的有效负载时,我收到此错误消息:

根据DocumentDB db的文件数据库约束格式化文档[id]列:[my-database-name]和集合:[my-collection-name]。

我的示例数据是一个JSON数组:

[
 { "Sequence": 1, "Tenant": "T1", "Status": "Started" },
 { "Sequence": 2, "Tenant": "T1", "Status": "Ended" }
]

我已按如下方式配置输入:

  • 输入别名:eventhubs-events
  • 来源类型:数据流
  • 来源:Event Hub
  • 订阅:与我创建Google Analytics作业的订阅相同
  • Service Bus名称空间:现有的Event Hub名称空间
  • 事件中心名称:事件(命名空间中的现有事件中心)
  • 事件中心策略名称:具有读访问权限的策略
  • 事件中心消费者组:空白
  • 事件序列化格式:JSON
  • 编码:UTF-8

输出如下:

  • 输出别名:documentdb-events
  • 接收器:DocumentDB
  • 订阅:与我创建Google Analytics作业的订阅相同
  • 帐户ID:现有的DocumentDB帐户
  • 数据库:记录(帐户中的现有数据库)
  • 集合名称模式:集合(数据库中的现有集合)
  • 文件ID:id

我的查询很简单:

SELECT
    event.Sequence AS id,
    event.Tenant,
    event.Status
INTO [documentdb-events]
FROM [eventhubs-events] AS event
azure azure-cosmosdb azure-stream-analytics
1个回答
4
投票

原来输出中的所有字段名称都是自动低级的。

在我的DocumentDB集合中,我已经在分区模式下配置了集合,其中“/ Tenant”作为分区键。

由于案例与输出的案例不匹配,因此约束失败。

将分区键更改为“/ tenant”修复了该问题。

希望通过分享我的研究结果可以为碰到这一点的人们省去一些麻烦。

第二选择

现在我们可以在Stream分析中更改compatibility-Level,而不是以小写字母更改分区键。

1.0版本:在Azure Stream Analytics引擎处理时,字段名称已更改为小写。

1.1版本:Azure流分析引擎处理字段名称时,案例敏感性会保持不变。

© www.soinside.com 2019 - 2024. All rights reserved.