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

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: 《Apache Flink 案例集(2022版)》——1.数据集成——小米-Flink 流批一体在小米的实践

作者:金风


用户背景

小米科技有限责任公司成立于2010年3月3日,是一家专注于智能硬件和电子产品研发的全球化移动互联网企业,同时也是一家专注于智能手机、互联网电视及智能家居生态链建设的创新型科技企业。 小米公司创造了用互联网模式开发手机操作系统、发烧友参与开发改进的模式。


业务需求

小米的大数据发展演变史大概如下:  


2019 年之前,小米的实时计算主要以 SparkStreaming 为主,少部分 Storm,离线计算以 Spark 为主; 2019 年,开始接入 Flink,并广泛应用于信息流搜索推荐、广告实时样本、实时 ETL 等场景,逐步替换了原来的 SparkStreaming 作业,得益于 Flink 框架的各种优秀特性,在作业的正确性,实时性,资源使用效率方面都有较大提升;


2020 年,开始接入使用 FlinkSQL,并广泛用于实时数仓的建设和实时 ETL 作业的开发。FlinkSQL 的实时数仓将数据链路由 T+1 降低到了秒级;


2021 年,开始接入数据湖 Iceberg,基于 Flink 和 Iceberg 来构建流批一体的实时数仓解决方案,并在小米内部的部分业务进行了落地,证明流批一体在赋能业务、提升作业开发效率、简化链路节省资源的方面是可行的。


image.png


上图是小米当前的实时和离线框架,目前是多种框架并存的状态。业务开发人员无论是写 SQL 作业还是写 Jar 包作业,都至少要维护两套代码。公司内部的计算引擎团队也需要花两拨人力分别去维护不同的计算框架,同时平台层也需要对不同的计算引擎去做不同的适配。  


基于上述情况,小米开始致力于流批一体的改造,实现实时和离线维护同一套计算框架,为业务开发人员、平台提供方和计算引擎的支持方最大化节省人力资源。


平台建设

对于流批一体的平台化建设,主要分为 4 个方面,分别是元数据管理、权限管理、作业调度以及 Flink 的生态建设。  


1、元数据管理

小米基于 Metacat 做了统一的元数据管理,由 Metacat 统一对接下游不同的存储系统和上游的计算引擎

image.png


基于 Metacat,内部的所有系统都被统一划分成三级结构,与 FlinkSQL 的三级结构相对应。  


第一级 Catalog,主要由服务名和集群名拼接而成。


第二级 Database,它与大部分系统的 Database 保持一致。没有 Database 的系统默认使用 default 来代替。


第三级 Table,也与系统的 Table 保持一致,比如消息队列的 topic 名, Elasticsearch 的索引名。  


在构建好统一的元数据管理之后,只需要写一条 DML 语句即可完成一个实时将消息队列数据入湖作业的开发。



2、授权管理

在实现了统一的元数据管理后,在开发 Flink SQL 作业时, 所有系统都被抽象为一个三级的结构表, 业务可以使用三级表名引用任意一个系统的表。同时小米基于 Ranger 也做了统一的权限管理,在 SQL 层统一管理所有的资源权限。  


小米在计算引擎层做了统一的权限管理,同时覆盖了 Flink SQL 和 Flink Jar。Flink SQL 作业可以在生成物理执行计划时获取到 SQL 引用的的 Source 和 Sink 表,以及 select 的 Source 表的字段名。基于以上信息,即可实现字段级别的鉴权。同时小米为 Flink Jar 用户提供了统一的工具类,同时也对接了 Flink Catalog,因此可以做到 Jar 包作业的权限校验。


image.png


如上图所示,统一管理了元数据和权限之,业务开发人员在开发FlinkSQL作业时可以非常便选择不同系统的,包DorisKuduHive等,作业由后端统一进行提权。在作业提时,也能非常方便获取到作业的血缘


《Apache Flink 案例集(2022版)》——1.数据集成——小米-Flink 流批一体在小米的实践(2):https://developer.aliyun.com/article/1228470





相关文章
|
2月前
|
存储 人工智能 大数据
The Past, Present and Future of Apache Flink
本文整理自阿里云开源大数据负责人王峰(莫问)在 Flink Forward Asia 2024 上海站主论坛开场的分享,今年正值 Flink 开源项目诞生的第 10 周年,借此时机,王峰回顾了 Flink 在过去 10 年的发展历程以及 Flink社区当前最新的技术成果,最后展望下一个十年 Flink 路向何方。
394 33
The Past, Present and Future of Apache Flink
|
3月前
|
分布式计算 大数据 Apache
ClickHouse与大数据生态集成:Spark & Flink 实战
【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
231 2
ClickHouse与大数据生态集成:Spark & Flink 实战
|
4月前
|
SQL Java API
Apache Flink 2.0-preview released
Apache Flink 社区正积极筹备 Flink 2.0 的发布,这是自 Flink 1.0 发布以来的首个重大更新。Flink 2.0 将引入多项激动人心的功能和改进,包括存算分离状态管理、物化表、批作业自适应执行等,同时也包含了一些不兼容的变更。目前提供的预览版旨在让用户提前尝试新功能并收集反馈,但不建议在生产环境中使用。
1021 13
Apache Flink 2.0-preview released
|
12天前
|
Java 关系型数据库 MySQL
SpringBoot 通过集成 Flink CDC 来实时追踪 MySql 数据变动
通过详细的步骤和示例代码,您可以在 SpringBoot 项目中成功集成 Flink CDC,并实时追踪 MySQL 数据库的变动。
104 43
|
10天前
|
SQL 人工智能 关系型数据库
Flink CDC YAML:面向数据集成的 API 设计
本文整理自阿里云智能集团 Flink PMC Member & Committer 徐榜江(雪尽)在 FFA 2024 分论坛的分享,涵盖四大主题:Flink CDC、YAML API、Transform + AI 和 Community。文章详细介绍了 Flink CDC 的发展历程及其优势,特别是 YAML API 的设计与实现,以及如何通过 Transform 和 AI 模型集成提升数据处理能力。最后,分享了社区动态和未来规划,欢迎更多开发者加入开源社区,共同推动 Flink CDC 的发展。
312 12
Flink CDC YAML:面向数据集成的 API 设计
|
4月前
|
存储 缓存 算法
分布式锁服务深度解析:以Apache Flink的Checkpointing机制为例
【10月更文挑战第7天】在分布式系统中,多个进程或节点可能需要同时访问和操作共享资源。为了确保数据的一致性和系统的稳定性,我们需要一种机制来协调这些进程或节点的访问,避免并发冲突和竞态条件。分布式锁服务正是为此而生的一种解决方案。它通过在网络环境中实现锁机制,确保同一时间只有一个进程或节点能够访问和操作共享资源。
172 3
|
2月前
|
消息中间件 JSON 数据库
探索Flink动态CEP:杭州银行的实战案例
本文由杭州银行大数据工程师唐占峰、欧阳武林撰写,介绍Flink动态CEP的定义、应用场景、技术实现及使用方式。Flink动态CEP是基于Flink的复杂事件处理库,支持在不重启服务的情况下动态更新规则,适应快速变化的业务需求。文章详细阐述了其在反洗钱、反欺诈和实时营销等金融领域的应用,并展示了某金融机构的实际应用案例。通过动态CEP,用户可以实时调整规则,提高系统的灵活性和响应速度,降低维护成本。文中还提供了具体的代码示例和技术细节,帮助读者理解和使用Flink动态CEP。
522 2
探索Flink动态CEP:杭州银行的实战案例
|
2月前
|
数据处理 数据安全/隐私保护 流计算
Flink 三种时间窗口、窗口处理函数使用及案例
Flink 是处理无界数据流的强大工具,提供了丰富的窗口机制。本文介绍了三种时间窗口(滚动窗口、滑动窗口和会话窗口)及其使用方法,包括时间窗口的概念、窗口处理函数的使用和实际案例。通过这些机制,可以灵活地对数据流进行分析和计算,满足不同的业务需求。
247 27
|
3月前
|
监控 Cloud Native BI
8+ 典型分析场景,25+ 标杆案例,Apache Doris 和 SelectDB 精选案例集(2024版)电子版上线
飞轮科技正式推出 Apache Doris 和 SelectDB 精选案例集 ——《走向现代化的数据仓库(2024 版)》,汇聚了来自各行各业的成功案例与实践经验。该书以行业为划分标准,辅以使用场景标签,旨在为读者提供一个高度整合、全面涵盖、分类清晰且易于查阅的学习资源库。
|
3月前
|
分布式计算 大数据 OLAP
AnalyticDB与大数据生态集成:Spark & Flink
【10月更文挑战第25天】在大数据时代,实时数据处理和分析变得越来越重要。AnalyticDB(ADB)是阿里云推出的一款完全托管的实时数据仓库服务,支持PB级数据的实时分析。为了充分发挥AnalyticDB的潜力,将其与大数据处理工具如Apache Spark和Apache Flink集成是非常必要的。本文将从我个人的角度出发,分享如何将AnalyticDB与Spark和Flink集成,构建端到端的大数据处理流水线,实现数据的实时分析和处理。
97 1

相关产品

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

    更多