Azure 流分析唯一 EventId 属性为 NULL

Posted

技术标签:

【中文标题】Azure 流分析唯一 EventId 属性为 NULL【英文标题】:Azure Stream Analytics Unique EventId Property is NULL 【发布时间】:2018-03-21 01:44:09 【问题描述】:

我希望为通过 Azure 流分析(IoT 中心输入源)处理的每个事件分配一个唯一 ID。

似乎没有办法只在 ASA 中分配一个新的随机 Guid(就像在 SQL 中一样),但我确实遇到了 following MSDN 文章,其中提到能够使用 GetMetadataPropertyValue 函数用 EventId 属性实现我想要的:

为输入事件创建一个唯一的 id (Guid),这对于 主键目的。它是一致的(不是随机的),即 Stream 如果您返回,Analytics 将为事件生成相同的 ID 时间并重新读取相同的输入事件。

我遇到的问题是,每次在查询生成器中尝试时,此函数都会返回 NULL。我是否遗漏了什么,或者是否有其他方法可以为活动获取唯一 ID?

【问题讨论】:

我相信该示例仅对 EventHub 输入有效。对于 IoT 中心输入,没有名为“EventId”的属性。 GetMetadataProperty 将仅读取消息中的字段 - 而不会生成任何新值。相反,您可以使用自定义 javascript 函数来创建唯一 ID,例如通过散列消息中的某些字段 @silent 我用 EventHub 输入测试过,它也是无效的。我下载了示例数据,数据中没有 EventId 属性。 【参考方案1】:

不幸的是,当您从示例数据中测试此属性时,它不起作用(我们需要一些额外的元数据)。 但是,当您对来自事件中心或 IoT 中心的实时数据运行作业时,您应该获取 GUID 值。

让我知道它是否适合您!很抱歉给您带来不便。

JS

【讨论】:

是的,它有效。我已经验证了 IoT Hub 作为输入和 Azure Function 作为输出。 谢谢,很高兴知道这一点。最初的计划是使用 Azure 表存储,但我们现在将使用 Azure SQL 并让数据库分配 GUID。感谢您的信息!

以上是关于Azure 流分析唯一 EventId 属性为 NULL的主要内容,如果未能解决你的问题,请参考以下文章

无法根据 Azure 流分析中的标头属性筛选消息

为 IoT Edge 部署 Azure 流分析作业

如何在 Azure 流分析中创建延迟滑动窗口

在 Azure 流分析中的属性内提取数组

过滤掉流分析中的重复项

如何在 Azure 流分析查询中检查 null Json 属性?