《Apache Flink 案例集(2022版)》——1.数据集成——小米-Flink 流批一体在小米的实践(3)

简介: 《Apache Flink 案例集(2022版)》——1.数据集成——小米-Flink 流批一体在小米的实践(3)


2. 实时数据集成  

image.png


主要分为两个部分:  


第一部分是实时数据的收集,小米内部主要分为两大类, 分别是日志数据和 DB 的 Binlog 数据。这里主要介绍 DB 系统的 Binlog 数据收集。最初小米使用自研的 LCS Binlog 服务来进行统一的 Binlog 收集,类似于 Canal 服务,通过该服务将 Binlog 的数据统一收集到消息队列中。  


第二部分则是数据的转储, 将使用 Spark Streaming 任务将消息队列中的数据导入其他系统,比如 Kudu 或 HDFS。  


现在小米使用 Flink 对 Binlog 的收集和转储链路都进行了改造。使用 Flink CDC 收集 Binlog 数据,并写入消息队列中。同时通过 Flink 将消息队列的数据转储到其他系统,比如 Kudu、Doris、Iceberg 等等。  


3、批流混合集成

image.png


在实际的使用中往往需要流批混合的方式,以适用于分库分表、部分链路重做,新增库表等场景。小米选择使用 Flink CDC 任务来收集库级别的 Binlog 数据(按照表级别收集会对 MySQL 服务造成较大的压力)。将数据收集到消息队列后,再针对不同的收集场景,起不同的作业来进行转储。对于单表全量数据需要重做的场景(backfill),小米使用Hybrid Source分别读取 MySQL中的存量数据和消息队列中的增量数据。


image.png

另一种批流混合的数据集成是在调度层做到批流混合,主要运用于TiDB的Binlog收集场景。在支持 TiDB 的数据收集和转储时无法使用 Hybrid Source,因为 TiDB 的全量数据往往非常大,需要起大量并发能够加速全量数据的转储,而增量数据则只需要较小并发即可,因此使用Hybrid Source难以同时保证业务性能和资源使用效率。解决的方法是在全量数据部分使用 Flink SQL Batch 作业来完成,可以灵活调整并发且相对于实时作业处理效率更高,增量部分则以较小的并发转储即可。


未来规划

当前 Flink + Iceberg 的数据湖解决方案在小米已经初步落地,未来可以提升的空间依然非常大,小米会不断跟进社区,继续推进内部流批一体化的建设。

image.png

与此同时,小米会将 Flink SQL Batch 用于更加复杂的场景。当前 Flink SQL Batch 发挥的场景有限,主要运用于批量导出的场景,相信未来它会发挥更大的价值。  


其次,小米会跟进社区的 built in dynamic table,结合消息队列和数据湖,兼顾时效性和准确性,提升用户的体验。同时也会升级 Hybrid Source connector,更加灵活地对接其他系统。

相关文章
|
10月前
|
存储 监控 数据挖掘
京东物流基于Flink & StarRocks的湖仓建设实践
本文整理自京东物流高级数据开发工程师梁宝彬在Flink Forward Asia 2024的分享,聚焦实时湖仓的探索与建设、应用实践、问题思考及未来展望。内容涵盖京东物流通过Flink和Paimon等技术构建实时湖仓体系的过程,解决复杂业务场景下的数据分析挑战,如多维OLAP分析、大屏监控等。同时,文章详细介绍了基于StarRocks的湖仓一体方案,优化存储成本并提升查询效率,以及存算分离的应用实践。最后,对未来数据服务的发展方向进行了展望,计划推广长周期数据存储服务和原生数据湖建设,进一步提升数据分析能力。
961 1
京东物流基于Flink & StarRocks的湖仓建设实践
|
8月前
|
资源调度 Kubernetes 流计算
Flink在B站的大规模云原生实践
本文基于哔哩哔哩资深开发工程师丁国涛在Flink Forward Asia 2024云原生专场的分享,围绕Flink On K8S的实践展开。内容涵盖五个部分:背景介绍、功能及稳定性优化、性能优化、运维优化和未来展望。文章详细分析了从YARN迁移到K8S的优势与挑战,包括资源池统一、环境一致性改进及隔离性提升,并针对镜像优化、Pod异常处理、启动速度优化等问题提出解决方案。此外,还探讨了多机房容灾、负载均衡及潮汐混部等未来发展方向,为Flink云原生化提供了全面的技术参考。
490 9
Flink在B站的大规模云原生实践
|
9月前
|
SQL 存储 NoSQL
Flink x Paimon 在抖音集团生活服务的落地实践
本文整理自抖音集团数据工程师陆魏与流式计算工程冯向宇在Flink Forward Asia 2024的分享,聚焦抖音生活服务业务中的实时数仓技术演变及Paimon湖仓实践。文章分为三部分:背景及现状、Paimon湖仓实践与技术优化。通过引入Paimon,解决了传统实时数仓开发效率低、资源浪费、稳定性差等问题,显著提升了开发运维效率、节省资源并增强了任务稳定性。同时,文中详细探讨了Paimon在维表实践、宽表建设、标签变更检测等场景的应用,并介绍了其核心技术优化与未来规划。
943 10
Flink x Paimon 在抖音集团生活服务的落地实践
|
9月前
|
资源调度 Kubernetes 调度
网易游戏 Flink 云原生实践
本文分享了网易游戏在Flink实时计算领域的资源管理与架构演进经验,从Yarn到K8s云原生,再到混合云的实践历程。文章详细解析了各阶段的技术挑战与解决方案,包括资源隔离、弹性伸缩、自动扩缩容及服务混部等关键能力的实现。通过混合云架构,网易游戏显著提升了资源利用率,降低了30%机器成本,小作业计算成本下降40%,并为未来性能优化、流批一体及智能运维奠定了基础。
576 9
网易游戏 Flink 云原生实践
|
Java Maven Docker
gitlab-ci 集成 k3s 部署spring boot 应用
gitlab-ci 集成 k3s 部署spring boot 应用
|
消息中间件 监控 Java
您是否已集成 Spring Boot 与 ActiveMQ?
您是否已集成 Spring Boot 与 ActiveMQ?
479 0
|
监控 druid Java
spring boot 集成配置阿里 Druid监控配置
spring boot 集成配置阿里 Druid监控配置
1336 6
|
Java 关系型数据库 MySQL
如何实现Springboot+camunda+mysql的集成
【7月更文挑战第2天】集成Spring Boot、Camunda和MySQL的简要步骤: 1. 初始化Spring Boot项目,添加Camunda和MySQL驱动依赖。 2. 配置`application.properties`,包括数据库URL、用户名和密码。 3. 设置Camunda引擎属性,指定数据源。 4. 引入流程定义文件(如`.bpmn`)。 5. 创建服务处理流程操作,创建控制器接收请求。 6. Camunda自动在数据库创建表结构。 7. 启动应用,测试流程启动,如通过服务和控制器开始流程实例。 示例代码包括服务类启动流程实例及控制器接口。实际集成需按业务需求调整。
1125 4
|
消息中间件 Java 测试技术
【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
1422 1
|
消息中间件 Java Kafka
springboot集成kafka
springboot集成kafka
687 2

相关产品

  • 实时计算 Flink版
  • 推荐镜像

    更多