顺丰数据集成实践:Flink CDC与Hudi在海量数据入湖的应用
4星 · 超过85%的资源 需积分: 3 130 浏览量
更新于2024-06-26
收藏 7MB PDF 举报
"顺丰在大数据集成过程中采用了Flink CDC与Hudi相结合的技术方案,用于海量数据入湖。本文档详细介绍了顺丰数据集成的背景、Flink CDC的实践问题与优化,以及未来的规划。"
顺丰数据集成背景:
顺丰作为一家大型物流公司,其业务涉及速运、IoT万物互联和智慧物流等领域。在数据集成的历史发展中,经历了从Jstorm+canal到Flink+canal,再到Flink CDC的演变。早期的数据入湖架构存在一些挑战,如全量与增量数据可能存在重复,需要下游处理Upsert或Merge操作,且由于组件多、链路长,导致资源消耗大、维护复杂。为了满足业务需求,顺丰提出了以下核心需求:
1. 无锁读取,支持断点续传和水平扩展。
2. 全量与增量数据自动切换,确保数据准确性。
3. 在不中断日志采集的情况下,进行全量与增量采集,避免新增表对其他表的影响。
4. 能在现有任务中添加新表,防止单个表任务消耗过多数据库带宽。
5. 保证数据在同一主键下按照历史顺序传输,避免事件错序。
为什么选择Flink CDC:
Flink CDC因其无缝对接Flink生态,能够满足顺丰提出的上述核心需求,成为了顺丰数据集成的理想选择。Flink CDC 2.0采用FLIP-27架构,通过全量同步和增量日志数据采集两部分实现数据的持续捕获。但在实践中,顺丰发现新增表会导致 Binlog 日志流停止,这与核心需求4相冲突,造成新增表对其他表的日志采集延迟。
Flink CDC实践问题与优化:
为解决新增表停止Binlog日志流的问题,顺丰提出了一种全量与增量日志流并行读取的优化策略。在程序启动时,先执行增量同步,创建BinlogSplit,分配给SourceRead执行增量数据采集,随后进行全量数据采集的split块切分和分配。这样,新增表的处理不会中断现有的日志流,有效降低了新增表对其他表日志采集的延迟。
未来规划:
顺丰在Flink CDC的基础上,可能会继续探索如何更高效地利用Hudi进行数据湖存储和管理,优化数据入湖的效率和稳定性,同时减少对源数据库的影响。此外,顺丰可能还会关注如何进一步提升数据处理的实时性,优化资源利用率,以及增强系统的可扩展性和容错能力。
总结:
顺丰在大数据集成领域采用了Flink CDC与Hudi的组合,以应对海量数据的挑战。通过不断优化Flink CDC的实践,解决了新增表对数据采集的影响,提升了整体数据处理的效率和准确性。随着技术的发展,顺丰将继续致力于提高数据湖的性能和功能,以支持其日益复杂的业务需求。
2021-03-11 上传
点击了解资源详情
2024-01-25 上传
2023-08-01 上传
2022-04-29 上传
2023-03-21 上传
2022-04-29 上传