【问题标题】:Getting Session ID in Streaming SQL for Amazon Kinesis在 Amazon Kinesis 的 Streaming SQL 中获取会话 ID
【发布时间】:2018-09-30 01:15:02
【问题描述】:

我已经能够将我的数据标准化为以下格式:

|ID | SessionState | PreviousID |
|1  |   OFF        |    -       |
|2  |   ON         |    1       |
|3  |   ON         |    2       |
|4  |   OFF        |    3       |

我想要做的是在其中添加一个 CycleID,它会预先设置以下内容:

|ID | SessionState | PreviousID | CycleID |
|1  |   OFF        |    -       |    -    |
|2  |   ON         |    1       |    1    |
|3  |   ON         |    2       |    1    |
|4  |   OFF        |    3       |    1    |

目前我正在使用一个滞后函数来获取先前的状态和previousID(我之前正在获取),但是,在状态改变之前我无法让它持续存在。我或多或少需要一个来自

的窗口

SessionState = 'OFF-->ON' 到 'ON-->OFF'

由于我在 Kinesis Analytics 中执行此操作,因此我们将不胜感激。

谢谢

【问题讨论】:

    标签: amazon-kinesis


    【解决方案1】:

    如果您的案例允许您将所有数据推送到数据库,然后使用标准 SQL,那就去吧。但是,如果您有时间窗口语义并且需要实时响应、复杂的业务逻辑,您将需要专门的工具,如 Kafka、Spark 或 Drools。

    【讨论】:

      【解决方案2】:

      有一个相关问题 - Using Kinesis Analytics to construct real time sessions,它提出了解决会话问题的几个选项。

      【讨论】:

      • 我很感激。但是,我正在使用 Lag 函数来达到这一点,所以我得到了时差。我只是没有办法保持循环 ID(我有大约 6 个滞后函数来获取电机开/关状态的时间,并按设备分组)。
      • @RWHertenstein2:当事情变得复杂时,根据我的经验,Kinesis Analytics 解决方案根本不适合......
      • 我相信你是对的。遇到的问题是同时需要一个分区和子分区。我认为这可能需要标准的 SQL 分析,而不是 kinesis。
      • 如果您的案例允许您将所有数据推送到数据库,然后使用标准 SQL - 去吧。但是,如果您有时间窗口语义并且需要实时响应,并且业务逻辑复杂,您将需要一个专门的工具,如 Kafka、Spark 或 Drools。
      • 如果您可以将您的评论作为答案,那么我可以市场就是答案。我认为您的第二个答案/评论对于这个问题是最准确的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-23
      • 1970-01-01
      • 2012-09-04
      • 2013-05-24
      相关资源
      最近更新 更多