《作业帮基于Flink的实时计算平台实践 - Flink Forward Asia 2021》是一份详细介绍了作业帮公司如何利用Apache Flink构建其实时计算平台的报告。该报告由实时计算平台负责人张迎分享,涵盖了平台的发展历程、技术选型、应用场景以及实践中的挑战与解决方案。
1. 发展历程:从2019年初期引入少量的Spark Streaming,逐步过渡到Flink SQL(1.9.1)作为主要实时计算引擎,到2021年实现了全业务线的多云、多集群部署,展现了作业帮对Flink技术的深入理解和持续优化。
2. 技术应用:FlinkSQL被广泛应用于实时数仓,支持实时计算和离线处理,同时与SparkStreaming、MR等传统技术进行了比较和整合。FlinkSQL的强大之处在于提供了一致的SQL接口,使得数据处理更加直观和高效。
3. 平台建设:报告强调了实时计算平台的数据库(如MySQL、StarRocks、Doris、Hologres等)和业务侧的整合,包括日志处理(如Kafka)、业务系统的接入(App、web、后端),以及数据流架构的设计,如使用binlog和log进行数据传输。
4. 实时与离线计算:Flink的优势体现在能够处理实时和近实时的数据流,与离线计算工具如Hive和ES形成互补,提供了完整的数据处理生命周期。
5. 产品化与BI分析:作业帮将Flink集成到工作台,支持BI分析,通过E2E Monitor Trace实现任务管理、元数据管理、权限控制等功能,提升了团队的工作效率。
6. 遇到的问题与解决方案:平台在实践中遇到的问题,如视图过多导致case定位困难,通过实时SQL任务、简洁的日志打印以及SQL-WhyTrace功能来改善。例如,通过将Table转换为DataStream,解决了源表重复读取和函数多次调用的问题,引入Trace优化了数据处理流程。
7. 存储选型与性能优化:报告还提到了存储策略的选择,结合FlinkSQL的特性,优化了性能,确保了SQL查询的响应速度和人效。
8. 总结与展望:最后,报告对未来的发展方向进行了总结和展望,包括对Flink技术的持续应用深化、更高效的实时处理能力,以及进一步提升用户体验。
通过这份报告,读者可以了解到作业帮如何通过Flink技术构建一个强大的实时计算平台,并从中学习到在实际项目中如何有效应用和优化Flink以适应不断变化的业务需求。