0

我的挑战:

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

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

非常感谢你的帮助

4

1 回答 1

0

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

于 2020-01-15T08:35:49.580 回答