流批一体技术在数字政府大屏领域的探索和实践

数字化转型
在流批一体这一目标的引导下,Apache Flink 现在已经对底层的算子、调度、Shuffle进行了统一的抽象,以统一的方式向上支持 DataStream API 和 Table API两套接口。DataStream API 是一种比较偏物理层的接口,Table API 是一种 Declearetive 的接口,这两套接口对流和批来说都是统一的。

Labs 导读

在数字化浪潮的推动下,以政府、工业、金融等为代表的多领域正在全面开展数字化转型建设,一些应用场景,对数据处理的时效性提出了更高的要求。基于此需求,设计并搭建了数据实时处理分析平台,该平台提供基于Flink SQL的数据分析能力,单个SQL语句即可完成数据的采集、计算和传输全流程开发,极大降低了用户使用实时计算能力的门槛,有效提高了实时计算服务的开发效率和质量,助力政府、工业、金融等领域数字化建设。

Part 01 背景

2022年,国务院公开发布了《全国一体化政务大数据体系建设指南》,要求各地区各部门按需建设政务数据实时交换系统,支持海量数据高速传输,实现数据分钟级共享,形成安全稳定、运行高效的数据供应链[1]。

传统的基于CDC[2]的ETL中,数据采集工具是必不可少的,通常使用DataX 和 Sqoop 做全量数据采集,使用 Canal 或 Debezium做增量变更数据采集,采集到的数据传输到消息中间件Kafka中,Flink 计算引擎再去实时消费这一部分数据传输到⽬的端,基于此理念,数据采集链路长,数据传输的时延较高,全量数据和增量变更数据的采集是割裂的两个阶段,此外,需投入更多的时间去维护采集工具和消息队列,运维成本较高。针对上述数据采集链路长、组件维护成本高等问题,设计并搭建了数据实时处理分析平台,该平台基于Apache Flink[3]构建,提供基于Flink SQL的数据分析能力,一个Flink SQL即可完成数据的采集、计算和传输全流程开发。基于Flink CDC[4],可替换传统ETL中的采集工具和消息队列,从⽽简化数据传输链路,降低组件维护成本。

Part 02 什么是流批一体 

早期时候Apache Flink虽然是一个可以同时支持流处理和批处理的框架,但是它的流处理和批处理的实现,不管是在API层,还是在底层的Shuffle、调度、算子层,都是单独的两套,这两套实现是完全独立的,没有特别紧密的关联。如图1所示,流批一体早期架构。

在流批一体这一目标的引导下,Apache Flink 现在已经对底层的算子、调度、Shuffle进行了统一的抽象,以统一的方式向上支持 DataStream API 和 Table API两套接口。DataStream API 是一种比较偏物理层的接口,Table API 是一种 Declearetive 的接口,这两套接口对流和批来说都是统一的。如图2所示,流批一体统一架构。

2.1、流批一体架构

图1 流批一体早期架构图1 流批一体早期架构


图2 流批一体统一架构图2 流批一体统一架构

2.2 流批一体架构优点

- 代码复用

基于DataStream API和Table API,用户可以写同一套代码来同时处理历史的数据和实时的数据;

- 易于开发

统一的Connector和算子实现,减少开发和维护的成本;

- 易于学习

减少学习成本,避免学习两套相似接口;

- 易于维护

使用同一系统支持流作业和批作业,减少维护成本。

Part 03 数据实时处理分析平台整体架构介绍

该架构自下而上包括数据源层、数据接入层、资源调度层、实时计算平台、数据存储层以及数据应用层。基于该架构可有效解决海量数据快速传输和秒级计算难题,助力政府、工业、金融等领域数字化建设。

图片图片

(1)数据源层:该分析平台可支持采集数据库中变更的数据,例如,MySQL数据库中Binlog日志完整记录了数据变更,因此可以把 Binlog 文件当作流的数据源;此外该分析平台还支持采集推送至Kafka消息中间件的JSON格式数据。

(2)接入层:该分析平台通过Connector对接外围存储系统,主要包含Flink Connector、Flink CDC Connector和用户自定义Connector,基于这三类Connector,该分析平台构建起完备的外围存储系统生态。

(3)调度层:该分析平台可支持基于K8S[4]的作业调度,借助其强大的能力,实现资源的弹性扩缩容,确保不同作业之间相互隔离,互不影响,避免资源争用抢占,提高作业并行运行的可靠性。

(4)实时计算平台:该平台是整个架构中的关键组成,其由配置中心、数据开发和运维中心三个核心子模块共同组成。其中,配置中心模块主要承担平台配置管理工作,数据开发模块主要承担作业的开发和提交工作,运维中心模块主要承担作业的监控、告警和运维工作。

(5)存储层:用于存储作业的计算结果,通过Flink Connector将计算结果输出到目标端,支持常见的MySQL、PostGreSQL等关系型数据库,还可支持MPP数据库Doris及消息中间件Kafka等。

(6)应用层:该分析平台可以支持各种流式数据分析需求,具备丰富的应用领域和广阔的使用前景,比如可应用于可视化驾驶舱大屏、物联网传感器数据分析等。

Part 04 平台特性

图片图片

数据实时处理分析平台经过长期的技术积累、业务沉淀,可以总结出以下5大特性:

1.易用的平台,提供从SQL开发调试到上线下线的运维监控及SQL的查询执行能力,使数仓建设及数据治理一体化;

2.敏捷的平台,支持与DevOps协同,一键部署线上作业;

3.云化的平台,支持K8S资源调度,借助其强大的能力,实现资源的弹性扩缩容;

4.安全的平台,采用多租户隔离机制,在数据存储、计算、调度等层面保障用户数据安全;

5.开放的平台,拥抱开放的生态,开放的架构。

Part 05 平台功能介绍

该分析平台由配置中心、数据开发和运维中心三个核心子模块共同组成。其中,配置中心模块主要承担平台配置管理工作,数据开发模块主要承担作业的开发和提交工作,运维中心模块主要承担作业的监控、告警和运维工作;

5.1 概览页

图片图片

5.2 可视化作业开发

该分析平台提供基于可视化、沉浸式的作业开发界面,帮助用户快速的构建SQL作业,具备自动提示、补全、高亮、美化等高级特性,可通过脚本模式去构建SQL作业,这种模式适合高级开发者,也可通过引导模式去构建SQL作业,通过选数据源、维表和目标表一键生成SQL作业,显著提升SQL作业创建效率,还提供标准的SQL语法检查,帮助用户快速定位开发过程中碰到的问题,基于以上模式创建的SQL作业,可一键提交部署到集群中去,不必关心作业提交细节。

5.2.1 脚本模式创建作业

图片图片

5.2.2 引导模式创建作业

图片图片

5.2.3 语法校验

图片图片

5.3 作业运维与监控

该分析平台提供通过Flink Web UI、错误日志等实时监控作业的运行状态,还提供对错误作业进行邮件、短信提示,缩短发现作业问题时间,提升问题定位效率,还提供作业的启动、停止等操作,还支持根据不同位点恢复作业,确保数据不丢失。

5.3.1 作业运维

图片图片

5.3.2 作业监控

图片图片

5.3.3 作业告警

图片图片

Part 06 应用实践-可视化驾驶舱大屏

在Chrome数字政府建设的第一要素是数据,数据在数字政府建设进程中至关重要,做什么样的上层应用,呈现什么样的指标,均需要数据来“说话”。以某市政务服务热线12345数据为例,通过设计科学的指标体系,整合不同来源数据,基于该分析平台、大数据分析挖掘和知识图谱等核心技术,通过实时高效的数据计算与人机交互能力,将核心数据指标实时动态呈现,构建可视化驾驶舱大屏,帮助管理者掌握全局,提高决策的科学性和有效性,如图3所示,可视化驾驶舱大屏数据流图。

图3 可视化驾驶舱大屏数据流图图3 可视化驾驶舱大屏数据流图

6.1 数据源

围绕数字政府建设要求,某市通过库表的形式提供了政务服务热线12345数据,比如业务诉求表,业务评价表等,依据表业务数据,设计科学的指标体系。

6.2 实时计算平台

该平台通过Flink CDC技术采集数据库变更日志,将数据高效的归集到平台中存储,并将这些日志按发生的顺序捕获、解析,形成特定的数据格式,通过对数据的清洗、聚合和关联等操作,将计算结果实时写入MPP数据库Doris中。

6.3 前端可视化展示

前端服务器定期轮询MPP数据库Doris中的数据,结合酷炫的可视化组件,实现数据的动态实时呈现,帮助管理者掌握全局,提高决策的科学性和有效性。

Part 07 未来展望

在数据实时处理分析平台的探索过程中,性能、场景的支持度、稳定性一直是推动我们平台不断升级的原动力。未来我们将从以下3个方向进行探索:

首先,实时数仓,湖仓一体探索,基于Flink强大的流批一体能力,去构建实时数仓,湖仓一体体系架构;

其次,Flink与K8S 的深度结合探索,随着云服务向算力服务的不断引进,通过K8S的资源调度能力,提升作业运行的稳定性,并能进行大规模运行;

最后,数据高铁探索,数据高铁的建设主要是通过归集模式的提升,从公共数据平台、各个应用系统里直接拉数据,保证数据的及时性、完整性和准确性。

👉参考文献

[1] 国务院办公厅关于印发全国一体化政务大数据体系建设指南的通知 https://www.gov.cn/zhengce/content/2022-10/28/content_5722322.htm.

[2] https://blog.csdn.net/qq30211478/article/details/100690948.

[3] Apache Flink 官网 https://nightlies.apache.org/flink/flink-docs-release-1.17/zh/.

[4] Flink CDC 2.0 正式发布,详解核心改进 https://developer.aliyun.com/article/786600.

[5] K8S:https://kubernetes.io/zh-cn/docs/home/.

责任编辑:庞桂玉 来源: 移动Labs
相关推荐

2022-06-30 09:30:36

FlinkSQL流批一体京东

2023-09-05 07:22:17

Hudi数据存储

2023-05-16 07:24:25

数据湖快手

2023-03-30 07:40:03

FeatHub 项目特征工程开发

2020-01-13 14:39:06

FlinkSQL无限流

2024-06-25 13:08:31

2019-07-01 15:40:53

大数据架构流处理

2021-08-02 10:19:08

Dataphin 数仓架构存储计算分离

2022-09-29 09:22:33

数据仓

2021-06-30 09:20:08

数仓FlinkHive

2021-11-18 21:09:50

流批场景引擎

2012-12-10 11:15:27

一体机

2023-03-27 21:24:18

架构数据处理分析服务

2023-12-20 07:35:03

大模型数据治理机器学习

2020-11-24 10:26:08

2012-02-23 16:11:56

一体机推荐

2019-11-28 20:51:10

阿里云Alink开源

2023-09-17 17:59:28

边缘计算调度方案

2024-07-18 08:38:31

2012-03-13 17:54:14

联想一体机
点赞
收藏

51CTO技术栈公众号