Kappa架构 随着Flink等流式处理引擎的不断完善流处理技术相关的技术成熟发展(例如:KafkaClickHouse)针对Lambda架构的需要维护两套程序等以上缺点LinkedIn的Jay Kreps结合实际经验和个人体会提出了Kappa架构。 Kappa架构的核心思想是通过改进流计算系统来解决数据全量处理的问题使得实时计算和批处理过程使用同一套代码。此外Kappa架构认为只有在有必要的时候才会对
历史数据进行重复计
算而如果需要重复计算时Kappa架构下可以启 新加坡电话号码数据 动很多个实例进行重复计算,方式是通过上游重放完成(从数据源拉取数据重新计算)。 Kappa架构就是基于流来处理所有数据流计算天然的分布式特征注定了他的扩展性更好通过加大流计算的并发性加大流式数据的时间窗口”来统一批处理与流式处理两种计算模式。其架构如下: Kappa架构构建的数仓当之无愧称为实时数仓Kappa架构最大的问题是流式重新处理历史的吞吐能力会低于批处理但这个可以通过增加计算资源来弥补。重新处理数据看似比较麻烦但在Kappa架构中并不复杂其步骤如下:
选择一个具有重放功能能够保存
历史数据的消息队列根据要求设置历史数 希腊电话号码列表 据保存时长例如:Kafka可以设置保存全部历史数据。 当某个或某些指标有重新处理的需求时按照新逻辑编写新的作业然后从上游消息队列最开始地方重新消费数据把结果写往一个新的下游结果表。 当新作业赶上进度后切换数据源读取新作业产生的结果表。 停止老的作业删除老的结果表。 另外Kappa 架构并不是中间结果完全不落地现在很多大数据系统都需要支持机器学习(离线训练)所以实时中间结果需要落地对应的存储引擎供机器学习使用另外有时候还需要对明细数据查询这种场景也需要把实时明细层写出到对应的引擎中。