我有来自事件经纪人的事件流(我们可以称之为“消息”,甚至只是“数据”),并且基于时间的延长。事件经纪人可以是Kafka或Amazon Kinesis或Microsoft Event Hubs,但我们可以说是Kafka。
我的目标是将此事件流放入冷藏;也就是说,通过Hadoop / Spark存储数据以供将来分析。这意味着我想把这个“聊天”的事件流转换成HDFS中的“矮胖”文件。在云环境中,我可能会使用S3或Azure存储而不是HDFS。
我也希望我的解决方案具有成本效益;例如,使用Avro / ORC等序列化格式以减少磁盘空间成本。我也像一个至少一次保证,一个特定的事件被持有到冷藏(一次性和一次性的奖励积分)。
我的核心问题是: