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的主要内容,如果未能解决你的问题,请参考以下文章