流数据 复杂的事件处理文件和相当长的时间段



我的挑战:

  • 我们每天收到大约 200.000 条记录的文件。我们将文件保留约1年,以支持重新处理等。
  • 为了便于讨论,假设它是某种持久的履行过程,具有关联记录的预配 ID。
  • 我们需要识别这些文件中的灵活模式,并触发事件
  • 典型的问题是:
    • 如果记录 A 后跟记录 B,记录 B 后跟记录 C,并且所有记录都发生在 60 天内,则触发事件
    • 如果找到记录 D 或记录 E,但记录 F 在 30 天内未遵循,则触发事件
    • 如果同时找到记录 D 和记录 E(无论顺序如何(,则后跟 ...24小时内,然后触发事件
  • 某些模式需要在 DB/NoSql 中查找或联接以获取其他信息,以选择记录或放入事件中。
  • ">
  • 选择记录"可以是简单的"字段 A 等于",但也可以是"字段 A in []"或"归档 A 匹配"或"func identify(字段 A、字段 B(">
  • ">
  • 天"也可能是"小时"或"上个月"。因此比"天"更灵活。通常我们在记录中有一些日期/时间戳。 目前最大值为"6 个月内"(在设置阶段取消(
  • 创建的事件(最好是 JSON(需要包含来自选择过程中所有记录的数据。
  • 我们需要一种方法来灵活地更改(添加、修改、删除(模式,可以选择重新处理输入文件。

关于如何优雅地解决问题的任何想法? 可能是一些python或java框架,或者任何公共云解决方案(AWS,GCP,Azure(是否特别有效地解决了问题空间?

非常感谢您的帮助

经过一些讨论和阅读,我们将首先尝试使用 FlinkCEP 库的 Apache Flink。从文档和博客条目来看,它似乎能够完成这项工作。这似乎是AWS的选择,在他们的EMR集群上运行。 我们在 GCP 和 Azure 上找不到任何提供这些功能的托管服务。当然,我们始终可以自己部署和管理它。不幸的是,我们没有找到一个Python框架。

最新更新