如果输入参数发生更改,是否可以计算流分析中的持续时间?

时间:2019-04-22 12:17:32

标签: azure azure-stream-analytics stream-analytics

我正在尝试计算来自连接到Azure IoT中心和流分析的数据记录器的信号(DI_1)的持续时间。

输入数据如下:

DateTime              Digital Input
22.04.2019 14:17:00        0
22.04.2019 14:16:00        1
22.04.2019 14:15:00        0
22.04.2019 14:14:00        0
22.04.2019 14:13:00        0
22.04.2019 14:12:00        0
22.04.2019 14:11:00        1
22.04.2019 14:10:00        1
22.04.2019 14:09:00        1
22.04.2019 14:08:00        1
22.04.2019 14:07:00        1
22.04.2019 14:06:00        0
22.04.2019 14:05:00        0
22.04.2019 14:04:00        0
22.04.2019 14:03:00        0
22.04.2019 14:02:00        1
22.04.2019 14:01:00        1
22.04.2019 14:00:00        0

结果应类似于:

DateTime               Duration
22.04.2019 14:16:00    00:01:00
22.04.2019 14:07:00    00:05:00
22.04.2019 14:01:00    00:02:00

有人知道如何在天蓝色流分析中实现这一点吗?

当前ASA输出是具有数字输入更改时的时间和数字输入(1或0)的数据集。

DateTime              Digital Input
22.04.2019 14:17:00        0
22.04.2019 14:16:00        1
22.04.2019 14:15:00        0
22.04.2019 14:14:00        1
22.04.2019 14:13:00        0
22.04.2019 14:12:00        1

通过以下代码实现:

SELECT 
  PE, UID, system.timestamp AS Time,
  GetArrayElement(GetArrayElement(Record,0), 3) AS DI_0
INTO
   [PowerBI]
FROM
   [IoTHub]
WHERE
LAG(GetArrayElement(GetArrayElement(Record,0), 3), 1) 
OVER (LIMIT DURATION(minute, 10)) <> GetArrayElement(GetArrayElement(Record,0), 3)

在这里,我必须计算PowerBI中的时间差。现在,我想直接在azure流分析中计算它,以避免在PowerBI中进行计算。

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我刚刚解决了它:

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity()
 */
class Products extends Attributes implements AttributesInterface
{
   /*****/
}

enter image description here