我想知道你能否帮我决定哪一个最适合我的情况。
用例:我想每天批处理存储在apachekafka中的约200m个事件和不同sql表中的约20m行。行中的数据表示用户的状态,而kafka中的事件会更改这些状态。kafka中的事件被很好地划分(一个用户的所有事件都存储在一个kafka段中),但是用户仍然多于kafka段。
(编辑)状态更新不能实时处理,因为事件在不同的时间来自不同的来源。所有事件都有具有适当时区的时间戳,但事件可能会被延迟观察,这将产生移位的时间戳。如何处理这些问题有商业规则
我知道,如果所有事件和开始状态都可用,则计算任何给定时间的用户状态。
输出:
一致的最终用户状态存储在mysql中
在计算过程中,根据当前状态可以写入其他源(Kafka、文本文件等)
他们都能够读取和分组数据,以便我可以处理它们,但据我所知:
spark和flink可以与hadoop一起工作(到目前为止,我还没有任何稳定的集群)
spark在处理比可用ram更多的数据时遇到问题(?)
对于flink,我不确定是否可以将数据流(kafka)和表(sql)中的数据组合起来
使用m/r,我需要设置hadoop集群
此外,未来每小时可能会有100万个事件,并且会有功能强大的hadoop集群。
暂无答案!
目前还没有任何答案,快来回答吧!