问题标签 [stream-analytics]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - IoT 中心/流分析 - SQL - 将传入时间戳转换为日期时间
我有一个时间戳在 1970 年 1 月 1 日之后以毫秒为单位(下面的 [timestamp] 是数据的列名),并且需要添加一个使用 SQL 来获取这些毫秒并将其转换为日期/时间的附加列格式。
我尝试过:
我收到错误消息:
无法在表达式“DATEADD ( SECOND , [timestamp] / 1000 , '19700101' )' 中将类型“nvarchar(max)”的值“19700101”转换为类型“datetime”。在“2”行和“152”列。
任何帮助表示赞赏,谢谢!- 男
azure-stream-analytics - 带有自定义窗口的 Azure 流分析
我知道流分析有几个窗口功能。在我的情况下,我需要在一个时间窗口内聚合消息,每次字段(或字段组合)更改时,新窗口都应该启动。
具体来说:假设我有以下消息:
- temp: 50, pressure: 5, productType: 车辆, alarmX:0
- 温度:52,压力:4,产品类型:车辆,警报X:0
- 温度:54,压力:3,产品类型:车辆,警报X:0
- 温度:56,压力:2,产品类型:平面,警报 X:0
- 温度:58,压力:3,产品类型:飞机,警报X:0
- 温度:50,压力:5,产品类型:平面,警报 X:1
- 温度:50,压力:5,产品类型:平面,警报 X:1
- temp: 50, pressure: 5, productType: 车辆, alarmX:0
- 温度:48,压力:5,产品类型:车辆,警报X:0
productType
我想在一个由和/或的变化定义的窗口上进行聚合alarmX
。所以我想汇总项目 (1,2,3) - (4,5) - (6,7) - (8,9)
使用流分析如何做到这一点?有替代方案吗?
azure - 具有多个条件的基于 Azure 流分析阈值的规则
我是 Azure 流分析的新手。我浏览了有关基于阈值的规则的Microsoft 文章。并为基于单一条件的规则使用以下配置,我也可以获得正确的输出。
我的参考/规则数据:
我的示例遥测数据包:
我的流分析输入是 IOTHUB,输出是 Azure 函数。
我的流分析查询:
但是现在,我需要配置满足多个条件的规则。我尝试了几种方法,但无法使其动态化。
我尝试在查询的 WHERE 条件中使用自定义 UDF 函数来动态生成查询。但不幸的是,这也不支持。(如果我错了,请纠正我)。
例如我的新参考/规则数据是:
azure-blob-storage - 如何防止由于 blob 输入而导致流分析的值加倍
在使用 blob 引用输入时,我们在流分析中看到了一个问题。重新启动流后,它会为加入它的事物打印双精度值。我认为这是在重新启动期间有超过 1 个 blob 处于活动状态的问题。目前,我们从结构为 Output/{date}/{time}/Output.json 的 ADLS 中的文件夹路径中提取文件,最终为 Output/2021/04/16/01/25/Output.json。这些文件具有与流中的数据匹配的键:
我没有看到任何问题,但这些文件实际上每分钟都是由天蓝色函数创建的。因此,在流分析开始期间,它可能会抓取最后一个以及随后创建的那个。(这是我的猜测,但我不确定我们将如何解决这个问题)。
这是该问题在 powerBI 中的视觉效果:
在查看它所捕获的设备的 cosmosDB 时,这很容易解释,有两个条目具有相同的值、assetID、时间戳、不同的 recordID(只是意味着 cosmosDB 将其计为两个单独的事件)。这是不可能的,因为我们无法从设备发送具有相同时间戳的副本。
documentation - 不显示存储帐户设置下的容器字段
在为 IoT Edge 创建流分析作业时,需要将作业与存储帐户中的容器相关联。在流分析作业配置部分下的存储帐户设置中 - 选择“添加存储帐户”时不显示容器字段。
是否有新的工作流程可以为流分析作业添加存储容器?
我尝试在同一资源组的存储帐户中添加存储容器。它没有帮助。
问题出现在第 3 步,“容器”字段未显示在 Azure 门户 - Steam 分析作业页面中
配置 IoT Edge 设置 - 源文档
1.在配置下,选择存储帐户设置,然后选择添加存储帐户。2.从下拉菜单中选择您在本教程开始时创建的存储帐户。 3. 对于容器字段,选择新建并提供存储容器的名称。 4.选择保存。
图片来自文档1
azure - 具有多个设备的基于 Azure 流分析阈值的规则
我有以 IOTHUB 作为输入的 Azure 流分析作业,并为具有多个条件的基于阈值的规则创建了查询。现在我有一个场景,我需要比较多个设备的遥测数据。
当前解决方案适用于:Device1:property1 > threshold AND property2 < threshold
寻找解决方案: Device1:property1 > threshold AND Device2:property2 < threshold
搜索了网络,但实际上找不到任何东西来比较多个设备的遥测。我不确定这是否受支持。
azure - 超出最大事件中心接收器。每个分区只允许 5 个接收器
我有一个 Azure 流分析作业,它接收一些原始事件,转换它们,然后将它们写入一些不同的输出。我收到以下错误:
超出最大事件中心接收器。每个分区只允许 5 个接收器。请为此输入使用专门的消费者组。如果有多个查询使用相同的输入,请使用 WITH 子句共享您的输入。
这很奇怪,因为我在开始时使用公用表表达式(WITH 子句)来获取所有数据,然后我不再访问事件中心。这是查询:
这是我使用的事件中心输入:
我也为此使用了一个单独的消费者组。在我看来,我做的一切都是对的。有谁知道怎么回事?
编辑:我启用了诊断日志,它说:
超过了消费者组中每个分区允许的最大接收器数量,即 5。连接的接收器列表 - nil、nil、nil、nil、nil。
azure - 如何在 Azure 流分析作业中使用配置数据?
我有一个来自 EventHub 的流分析作业流数据。该作业使用多个 Javascript 函数来执行一些计算。我想将一些配置(最好是来自 Blob 存储的 JSON)传递给这些函数。有没有办法做到这一点?
我可以从 Blob 存储读取配置作为参考数据输入,但我不想将配置 (JSON) 与来自事件中心的数千个输入行连接起来,因为这变得非常低效。我只想制作一个配置对象并将其传递给函数。
有任何想法吗?
azure - 交叉应用从时间戳记每 10 分钟记录的值数组,并在流分析中生成它们的时间戳
我有以下流分析输入:
其中“TAGX”的值数组表示从时间戳“TMSDUTC”:“2021-10-14T13:00:00.000”开始,每 10 分钟从传感器记录一小时的值。我想知道如何进行一个可以给我类似输出的查询:
我的主要疑问是如何从时间戳创建 10 分钟的序列并将值交叉应用到它。
azure - UNION 一侧为空时无输出
我有一个 Azure 流分析作业,它结合了多个查询的结果并将它们输出到同一个接收器。为此,我在 WITH 语句中定义我的查询,然后使用 UNION 将它们组合起来,然后将它们写入我的接收器。然而,不幸的是,当我的所有查询实际上都有输出时,我只会得到一个输出到我的接收器,这就是它出错的地方。
我有一些连续(每 5 分钟)给出输出的查询,但我也有一些很少给出输出的查询(可能每天几次)。这会导致输出没有得到任何结果,直到查询都有要返回的内容。有谁知道这是为什么以及我该如何解决?当集合 A 有结果但集合 B 没有结果时,UNION 不应该也给出结果吗?我在 VS Code 中本地运行它,顺便说一下与事件中心的实时连接。
下面是一个出错的 2 个查询的简化示例(一个输出频繁,一个输出不频繁):