【问题标题】:Azure Stream Analytics - Identify common data across the multiple data setsAzure 流分析 - 跨多个数据集识别公共数据
【发布时间】:2021-11-15 13:34:08
【问题描述】:

我正在使用 Azure 事件中心从多个源捕获数据并将其发送到 Azure 流分析。这些来源有一些共同的数据点。 例如:

  • 来源 1:PNR 编号
  • 来源 2:PNR 编号

如何识别这些多个数据集中的共同数据?

【问题讨论】:

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


    【解决方案1】:

    我了解多个源被提取到一个事件中心?我想有一个字段 SourceId 可以识别数据点的来源?

    如果是这种情况,您可以使用Common Table Expressions (WITH) 来确定这些来源的范围,并在它们之间使用join

    WITH 
      SourceA AS (
        SELECT * FROM Input WHERE SourceId = 'A'
      ),
      SourceB AS (
        SELECT * FROM Input WHERE SourceId = 'B'
      )
    
    SELECT
      A.*,
      B.*
    FROM A
    LEFT JOIN B 
      ON A.[Pnr NO] = B.[Pnr NO]
      AND DATEDIFF(second,A,B) BETWEEN 0 AND 60
    

    请注意,这不是通用模式。它解决了一个特定的业务问题,我们需要在 B (FROM A LEFT JOIN B) 中为 A 找到匹配事件,这将在接下来的 60 秒 (DATEDIFF(second,A,B) BETWEEN 0 AND 60) 内发生。

    lots of different patterns 可以在此处应用,具体取决于您要构建的特定场景。对于某些人来说,应该使用分析函数(如last)而不是联接。

    如果您详细说明您的需求,我或许能够找到合适的模式。

    【讨论】:

    • 感谢弗洛里安·艾登
    猜你喜欢
    • 2012-01-26
    • 1970-01-01
    • 2012-10-25
    • 1970-01-01
    • 2018-01-04
    • 2018-01-29
    • 1970-01-01
    • 2020-04-19
    • 2022-08-05
    相关资源
    最近更新 更多