AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

基于 OceanBase+Flink CDC,云粒智慧实时数仓演进之路

付大伟

  • 2024-06-28
    北京
  • 本文字数:2850 字

    阅读完需:约 9 分钟

大小:1.42M时长:08:15
基于OceanBase+Flink CDC,云粒智慧实时数仓演进之路

作者:付大伟 云粒智慧高级技术专家


云粒智慧成立于 2018 年 6 月,它是一家科技公司,主要面向政府和中小规模的企业,提供智慧城市和生态环保方面的智能化应用。


联通云粒拥有三中台:数据中台、智能中台和应用中台,以及智能化应用产品,与政府合作为各地提供智慧城市建设服务,包括政务数据一体化、公共数据开放、一网统管、一网通办等业务。另外,我们在一些应急领域如水利和环保,也拥有智能化预警等方面的业务。

业务背景及挑战


三中台之一的数据中台,主要提供数据采集、融合、治理、分析、计算的服务,是公司比较重要的产品。自公司成立初开始产品发育,到如今历经 5 个大版本迭代,现已在全国范围内落地上百个客户项目。下图是数据中台架构,可以看到其整体运行在 K8s 集群上,为了更好地动态扩缩容,计算和存储都使用 OceanBase,同时使用 Minio 做非结构化文件的存储工作,使用 Flink 流计算引擎。在引擎上层,我们构建了一个引擎操作系统,用来适配在客户交付过程中面临的不同的大数据底座。



由于为各类政企交付项目,因此云粒智慧在交付过程中积累了三方面的业务特性。


  • 多业务线,形态各异。政务领域业务跨度较大,多种数据源、不同频率的数据汇集,带来很多业务复杂性问题。

  • 计算资源缺乏。各项目 3-5 台计算资源,难以运行大规模计算;服务器资源匮乏,大量数据计算往往耗时较长。

  • 业务协同需求强。数据实时性较强,各单位追求业务协同效率,比如防汛减灾、水质污染等实时告警场景。


上述业务特点为技术实现带来了很大的挑战。技术中台作为大数据处理系统,引擎是它最核心的内容,在中台 1.x 到 3.x 版本迭代过程中,其实选用 Hive 和 HDFS 作为计算存储的引擎,但遇到诸多痛点,主要表现为以下四点。


  • 资源利用率低:受限于 YARN 的调度策略,需要在项目中依据任务和资源情况逐个调优,任务量增加后仍需持续投入,难以一劳永逸。

  • 数据时延:实时数据入仓带来了诸多小文件问题,虽然项目组在 Flink 的框架下做了诸多优化,仍然无法满足大屏监控、预警、数据消费等应急场景需求。

  • 不够灵活:数据更新方式仅支持全表/分区级覆盖,应对远景冷区部分数据更新时,处理逻辑复杂且低效。

  • 运维复杂:组件众多,配置、监控、伸缩、保活等都极大地增加了运维工作量。高可用场景下每个节点均需要多个进程,容器部署性能下降。


因此,在数据中台 4.x 版本时,云粒智慧希望引进新的引擎来解决上述问题。

实时数仓的架构演进


数据引擎作为一款基础软件,目前市面上百花齐放。云粒智慧在选型过程中主要关注五个方面:


  • 它的开源协议是否足够宽松。

  • 是否能够支持云原生的方式部署。

  • 它需要支持集群

  • 它能够以私有化的方式部署到客户的现场。

  • 这个产品以及它的生态是否有足够高的成熟度。


经过了较长时间的调研,认为 OceanBase 在三方面表现优异。第一,它的架构设计比较简洁,主要是由 OBServer 和 OBProxy 组成,即便运维多套客户环境,也会节省很大的成本,增加一些便利;第二,数据中台作为一个原生支持多租户的系统,我们使用 OceanBase 的多租户,整体方案上都会更加契合。第三,OceanBase 作为开源数据库,其社区和生态开放、成熟,尤其是针对我们常用的数据集成软件 DataX 和 Flink,都有官方的一些插件,OceanBase 非常契合云粒智慧的技术实现路线。


因此,我们对 OceanBase 做了一些性能测试,包括部署 3 台 8 核 32G 的服务器集群,每次处理的数据量都达到 1G 以上来观测它的性能。我们观测到,OceanBase 的性能指标最高可以达到 Hive 的 24 倍,在整个选型和应用过程中,OceanBase 的学习成本也比较低的,熟悉 MySQL 就能上手,而且官方文档比较齐全。此外,当我们确定产品选型后,在后续的迁移工作中,我们花了一个多月的时间就完成了适配和迁移,比预期快很多。同时据运维人员反馈,利用 OceanBase 的日志能够解决大部分运维的问题。


至于数据同步工具的选型,Flink CDC 的选型比较水到渠成,首先是契合度的问题,数据中台在最初版本中,我们已经使用 Flink 作为流计算的引擎,所以 Flink CDC 比较贴合我们的路线。其次,Flink CDC 支持的方式非常多,包括全量、增量,以及先全量再增量的方式,这有利于提升交付效率。以往我们利用离线的开发,比如 Hive 的数仓来做增量同步时,需要开发人员设计一个比较大的图,去数仓捞出最新的时间戳,并且把它作为一个参数注入 DataX 的一些导入节点上,之后还需要数据去重、关联等治理操作才能够完成。


此外,Flink CDC 运行在 Flink 分布式引擎上,在 K8s 上,我们根据客户实时数据量的大小可以自动扩缩容 Flink。


自从选用 OceanBase+Flink CDC 架构后,架构变得非常简洁,我们用 OceanBase 代替了以前以 Hive 为主的 MPP 引擎、HiveServer2、YARN 和 HDFS。使用 Flink CDC 来完成关联数据库日志的同步,使用 FlinkSQL 做相应的实时加工处理。数据写入流程也更加便捷。



总而言之,优化后的平台架构,在以下方面呈现出较大优势,使云粒智慧能够依托 FlinkCDC 和 OceanBase,建设完全云原生的智能化数据中台。


第一,云原生化。微服务、调度任务、大数据引擎全部基于 K8s 云原生技术,支持容器化部署和资源调度,实现弹性伸缩和快速升级。


第二,数据开发。不同业务形态下简易配置,离线与实时数据开发均提供 SQL 化(离线标准 SQL、实时 FlinkSQL)、配置化;拖拉拽式作业编排,百万级任务调度、开发效率提升。


第三,运维管理。以往,大数据底座问题往往需要运维+开发花费 1-2 天时间进行排查和优化,OceanBase 清晰的日志信息给运维带来极大便利,常见问题 1 小时内解决。


第四,资源利用。流计算和 OceanBase 的广泛应用,使得单个项目服务器资源由原来的 11 台 缩减到 6 台,在业务量和资源投入上可以更好的平衡。


第五,学习成本。OceanBase 对大数据新入行人员非常友好,学习成本极低。


下面我们以具体项目来说明 OceanBase + FlinkCDC 架构的优势。



这是我们在贵州某项目上的应用,从客户的数据量、接入量可以看出,体量较大。客户需要接入物联网设备产生的数据,并且做实时预测、实时告警。它的数据表产过 1900 个,涉及的数据量有 675 亿条,而且每天接入的数据量都达到 1.9 亿左右。


在改造前,我们使用 Hive 引擎需要 11 台服务器,并且实时数据接入是采用离线批量的方式让它入仓,基本上会有 5 分钟左右的延迟,不能满足客户实时告警的需求。另外,更新逻辑比较复杂,我们需要额外运行很多任务以保证入仓数据是最新、最完整、和业务匹配的。


改造后,我们发现只需要 8 台服务器就能够支撑客户所有的业务,而且可以将延时控制在 5 秒左右,极大提升了数据告警效率。由于更新支持变得容易,大家的任务量也被极大缩减了。整体而言,服务器资源节省 27%;实时效率提升 100 倍;业务复杂度降低 10%。

未来规划


2024 年,云粒智慧正在发力数据中台 5.x 版本的建设,进一步支持云原生化,包括结合 OceanBase 4.3 版本在云原生环境下做项目交付;通过 FlinkCDC 支持更多数据源、Flink ML 探索应用,增强流计算;基于计算引擎的资源监控升级调度策略;让数据平台能够在有限的资源下运行更多的调度任务。

2024-06-28 18:517547
用户头像
李冬梅 加V:busulishang4668

发布了 1058 篇内容, 共 671.7 次阅读, 收获喜欢 1216 次。

关注

评论

发布
暂无评论
发现更多内容

软件定义存储厂商大道云行加入龙蜥社区

OpenAnolis小助手

生态 存储技术 龙蜥社区 大道云行 CLA

春暖花开,等你而来!4月月更挑战开始啦!

InfoQ写作社区官方

热门活动 4月月更

墨天轮访谈 | 华为云温云博:从客户视角出发,GaussDB(for Redis)究竟“香”在哪里?

墨天轮

数据库 redis 华为云 国产数据库 键值数据库

360大数据技术专家 程建云:IoTDB在360的落地实践 | Apache IoTDB Talk

Apache IoTDB

时序数据库 IoTDB Apache IoTDB

高层次人才一站式服务平台系统开发

a13823115807

异构注册中心机制在中国工商银行的探索实践

SOFAStack

GitHub 开源 分布式架构 注册中心 工商银行

OceanBase 开源负责人纪君祥聊 社区版 2022 Roadmap

OceanBase 数据库

oceanbase OceanBase 开源

OpenHarmony标准设备应用开发(三)——分布式数据管理

OpenHarmony开发者

OpenHarmony 分布式数据

Tapdata 肖贝贝:实时数据引擎系列(六)-从 PostgreSQL 实时数据集成看增量数据缓存层的必要性

tapdata

数据库 实时数据

深入垂直业务场景,SaaS版供应商业务协同管理系统促进企业与供应商高效协同

数商云

数字化转型 供应链系统

VuePress 博客搭建系列 33 篇正式完结!

冴羽

JavaScript Vue 前端 vuepress 博客搭建

华为云GaussDB专家走进课堂,跟莘莘学子聊聊数据库

华为云数据库小助手

GaussDB GaussDB(for openGauss) GaussDB(for MySQL)

深入浅出 Java FileChannel 的堆外内存使用

Apache IoTDB

基于微信小程序的实验室预约小程序平台详细设计

CC同学

Git教程-帮助开发人员更好的运用Git | 云效

阿里云云效

git 云计算 阿里云 DevOps 开发者

外部数据的合规引入助力银行用户营销系统冷启动

易观分析

隐私计算

一文带你了解 Python 中的迭代器

踏雪痕

Python 3月程序媛福利 3月月更

week4作业

Asha

明天直播:如何测试硬件设备与龙蜥操作系统的兼容性?

OpenAnolis小助手

硬件 直播 开源社区 sig 兼容性

JS Array数组几个循环实用方法总结

MegaQi

JavaScrip 测试发开 web前端开发

昇思MindSpore行至2022,开源社区成就生态共赢

这不科技

华为 昇思MindSpore

Facebook 开源 Golang 实体框架 Ent 现已支持 TiDB

极客天地

云时代,租电脑还是初创型企业最好的选择吗?

阿里云弹性计算

远程办公 无影云电脑 初创型企业

叮咚!参与微服务免费试用,有机会获得腾讯内推资格!

InfoQ写作社区官方

腾讯云 微服务 热门活动

Rust Cell 与RefCell,有啥区别?

非凸科技

如何快速实现持续交付

阿里云云效

云计算 阿里云 软件开发 CI/CD 持续交付

从二十年开源经历出发,70 后大龄程序员谈成长、困境与突围

TDengine

数据库 tdengine 开源

加密货币监控和区块链分析如何帮助避免加密货币欺诈?

CECBC

《LeetCode 刷题报告》题解内容Ⅱ

謓泽

3月月更

前端食堂技术周刊第 30 期:Vercel 支持零配置部署使用 pnpm 项目、React 新文档更新、Angular Roadmap、Remix Stacks

童欧巴

JavaScript 编程 前端 周刊 资讯

区块链架构下 智慧城市发展加速

CECBC

基于OceanBase+Flink CDC,云粒智慧实时数仓演进之路_数据库_InfoQ精选文章