Google cloud dataflow 连接历史数据和流数据

Google cloud dataflow 连接历史数据和流数据,google-cloud-dataflow,Google Cloud Dataflow,我希望在Dataflow中实现一个流式搜索/过滤系统。系统本身相当复杂,因此我将使用一个简化的示例来描述我的问题 假设我希望允许我的系统的用户为新闻文章设置警报,匹配包含指定关键字的任何文章。与我的问题相关的是,当警报添加到系统中时,它需要返回并匹配包含该关键字的所有以前的文章。当然,它还需要开始匹配任何新文章 我的想法是将文章流与警报流连接起来,根据每个警报检查每篇文章 我的问题是:有什么好方法可以保存过去文章的存档,以便根据新的警报进行检查,还有什么方法可以避免太复杂和太特殊?理想情况下,我

我希望在Dataflow中实现一个流式搜索/过滤系统。系统本身相当复杂,因此我将使用一个简化的示例来描述我的问题

假设我希望允许我的系统的用户为新闻文章设置警报,匹配包含指定关键字的任何文章。与我的问题相关的是,当警报添加到系统中时,它需要返回并匹配包含该关键字的所有以前的文章。当然,它还需要开始匹配任何新文章

我的想法是将文章流与警报流连接起来,根据每个警报检查每篇文章


我的问题是:有什么好方法可以保存过去文章的存档,以便根据新的警报进行检查,还有什么方法可以避免太复杂和太特殊?理想情况下,我只需将所有文章保存在一个pcollection中,该pcollection具有一个全局窗口和一个触发器,该触发器将发出所有新元素并加入一个警报流。这是否可行?如果我的工作出现问题,我如何确保我不会丢失文章?

基本上,每次新文章出现时,您都希望扫描所有现有警报并找到匹配的警报;同样,每次新警报到达时,您都希望扫描所有现有文章并找到匹配的文章

我认为您有一些有效的方法来查找警报的匹配文章,并为文章匹配警报,而不是扫描整个数据库,但如果没有(例如,如果数据库很小),也可以

一个选项是这样的系统:

  • 添加新文章时,1)将其写入索引存储系统(例如Bigtable、Elasticsearch或数据库等)2)向PubSub主题发出“新文章”事件
  • 添加新警报时,执行相反的操作:同时写入索引存储系统并发出事件
  • 让一个管道监听两个子主题上的事件。获取“新文章”事件时,它会扫描警报数据库以查找匹配的警报(使用任何可用的索引)。获取“新警报”事件时,用于匹配文章

这有意义吗?

有,但我想在数据流中这样做,包括保持状态。此外,我还需要能够处理归档数据。因此,我正在寻找一种使用数据流结构实现这一点的方法。另外:警报集将很小,可能只有少数,但文章集将非常庞大,大约有数亿条。我不介意添加新警报时的延迟,因此只要数据流可以扩展到这一点,只要有新的分段,就可以处理每一个
(文章、分段)
组合。我明白了。在我的回答中,我仍然建议使用这种方法:数据流可以保持相当数量的状态,但它不是一个存储系统,因此我不建议在数以亿计的文章中尝试使用它。好吧,那么我将尝试寻找替代方法。谢谢