使用 MetaDataPropertyValue 筛选 Azure 流分析

Filter on Azure stream analytics using MetaDataPropertyValue

SELECT  
    GetMetadataPropertyValue("deviceinputstream", '[User].[productFilter]') AS prodFilter
INTO 
    "outputstream" 
FROM 
    "inputstream"

我正在尝试获取元数据 属性 值来过滤数据。使用上面定义的查询,我能够获取元数据 属性 但如何根据此过滤输入流?

"input stream" 是一个物联网集线器,可以从许多设备获取数据。这个元数据 属性 是区分不同产品的东西。 where子句应该写什么?

我尝试使用 WHERE prodfilter = 'product1'` 但它没有用。

如果你这样使用prodFilter

SELECT  
    GetMetadataPropertyValue("deviceinputstream", '[User].[productFilter]') AS prodFilter
INTO outputstream
FROM inputstream
WHERE prodFilter = 'product1'

,那么WHERE中的prodFilter还没有定义。 您应该使用原始表达式,例如:

SELECT  
    GetMetadataPropertyValue("deviceinputstream", '[User].[productFilter]') AS prodFilter
INTO outputstream 
FROM inputstream
WHERE
    GetMetadataPropertyValue("deviceinputstream", '[User].[productFilter]') = 'product1'

或更好的是在不同的步骤中过滤:

WITH step1 AS (
    SELECT  
        GetMetadataPropertyValue("deviceinputstream", '[User].[productFilter]') AS prodFilter
    FROM inputstream

)

SELECT *
INTO outputstream
FROM step1
WHERE prodFilter = 'product1'