Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure流分析:参考数据中的正则表达式_Azure_Azure Stream Analytics - Fatal编程技术网

Azure流分析:参考数据中的正则表达式

Azure流分析:参考数据中的正则表达式,azure,azure-stream-analytics,Azure,Azure Stream Analytics,我有一个Azure Stream Analytics作业,它使用一个EventHub和Blob存储中的一个引用数据作为2个输入。参考数据为CSV,如下所示: REGEX_PATTERN,FRIENDLY_NAME 115[1-2]{1}9,Name 1 115[3-9]{1}9,Name 2 然后,我需要在EventHub中的传入事件中根据此CSV查找一个属性,以获得 友好的\u名称 使用参考数据的典型方法是使用JOIN子句。但是在这种情况下,我不能使用它,因为LIKE操作符不支持这样的正则表

我有一个Azure Stream Analytics作业,它使用一个EventHub和Blob存储中的一个引用数据作为2个输入。参考数据为CSV,如下所示:

REGEX_PATTERN,FRIENDLY_NAME
115[1-2]{1}9,Name 1
115[3-9]{1}9,Name 2
然后,我需要在EventHub中的传入事件中根据此CSV查找一个属性,以获得
友好的\u名称

使用参考数据的典型方法是使用
JOIN
子句。但是在这种情况下,我不能使用它,因为
LIKE
操作符不支持这样的正则表达式匹配

UDF是另一个选项,但我似乎找不到在函数中使用参考数据作为CSV的方法


Azure Stream Analytics作业中是否有其他方法可以做到这一点?

据我所知,您的场景中不支持加入。联接键应该是特定的,不能是正则表达式值

因此,这里不适合使用参考数据,因为它应该在ASA sql中使用,如下所示:

SELECT I1.EntryTime, I1.LicensePlate, I1.TollId, R.RegistrationId  
FROM Input1 I1 TIMESTAMP BY EntryTime  
JOIN Registration R  
ON I1.LicensePlate = R.LicensePlate  
WHERE R.Expired = '1'
需要join键。我的意思是,即使在这里也不需要输入参考数据

您的想法是使用UDF脚本并将数据加载到UDF中,以与硬代码正则表达式数据进行比较。这个想法不容易坚持。也许你可以考虑我的工作:

1.您说您有不同的参考数据,请分组存储为json数组。为每个组分配一个组id。例如:

组Id 1:

[
    {
        "REGEX":"115[1-2]{1}9",
        "FRIENDLY_NAME":"Name 1"
    },
    {
        "REGEX":"115[3-9]{1}9",
        "FRIENDLY_NAME":"Name 2"
    }
]

2.在ASA SQL的引用组id和集合中添加一列。在Azure函数中,请接受组id列并加载相应的json数组组。然后循环行以匹配正则表达式,并将数据保存到目的地


我认为Azure函数比ASASSQL作业中的UDF更灵活。此外,此解决方案可能更易于维护。

事件中心和参考数据之间的连接键是什么
REGEX_PATTERN
?@JayGong是的,这是连接键。请理解,但我认为键应该是特定的,而不是ASA作业中的REGEX值。所以这是你的痛点,对吗?@JayGong正确。这就是为什么我怀疑
JOIN
是否适用于我的情况。我所能想到的另一种选择是,使用一个UDF,但我想知道是否可以使用UDF中的整个参考数据列表来执行查找。作为最后的回退,我正在考虑对UDF中的参考数据进行硬编码。但我需要为几个不同的ASA工作,使用不同的参考数据。所以事情会变得很糟糕。我知道这个解决方案的大致思路。当前ASA作业输出到另一个EvenHub,现在需要将其更改为Azure函数,让Azure函数执行正则表达式查找工作,然后使用自定义代码接收到事件中心。这意味着我们的工作将发生实质性的架构变化,我正在寻找一个只使用ASA结构的更简单的解决方案。谢谢你的想法,如果我们不能找到另一种解决方法,我们会记住这一点。@user\u name是的!我知道这对你来说可能太反了。你可以把它作为一个解决办法。无论如何,谢谢你。