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

摘要:本文整理自云粒智慧高级技术专家付大伟在 4 月 20 日的 2024 OceanBase 开发者大会上的分享,讲述了其数据中台在传统数仓技术框架下做的一系列努力后,跨进 FlinkCDC 结合 OceanBase 的实时数仓演进过程。
内容主要分为以下几个部分:

  1. 业务背景及挑战
  2. 实时数仓的架构演进
  3. 未来规划

4月20日,云粒智慧高级技术专家付大伟在2024 OceanBase开发者大会上分享了云粒智慧实时数仓的建设过程,讲述了其数据中台在传统数仓技术框架下做的一系列努力后,跨进 FlinkCDC 结合 OceanBase 的实时数仓演进过程。

业务背景及挑战

云粒智慧成立于2018年6月,它是中国联通和阿里巴巴共同出资成立的一家科技公司,主要面向政府和中小规模的企业,提供智慧城市和生态环保方面的智能化应用。联通云粒拥有三中台:数据中台、智能中台和应用中台,以及智能化应用产品,与政府合作为各地提供智慧城市建设服务,包括政务数据一体化、公共数据开放、一网统管、一网通办等业务。另外,我们在一些应急领域如水利和环保,也拥有智能化预警等方面的业务。

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

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

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

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

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

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

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

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

  • 不够灵活:数据更新方式仅支持全表/分区级覆盖,应对已经入仓的历史数据中部分数据更新时,处理逻辑复杂且低效。

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

因此,在数据中台 4.X 版本时,我们希望引进新的引擎来解决上述问题。

实时数仓的架构演进

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

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

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

  • 它需要支持集群。

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

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

我们经过了较长时间的调研,认为 OceanBase 在三方面表现优异。第一,它的架构设计比较简洁,主要是由 OBServer 和 OBProxy 组成,即便运维多套客户环境,也会节省很大的成本,增加一些便利;第二,数据中台作为一个原生支持多租户的系统,我们使用 OceanBase 的多租户,整体方案上都会更加契合。第三,OceanBase作为开源数据库(https://github.com/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 分布式引擎上,在 K8 s上,我们根据客户实时数据量的大小可以自动扩缩容 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% 。

未来规划

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/606694.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

武汉星起航:展望跨境电商新篇章,创新发展助力品牌国际化

随着全球经济一体化的深入发展,跨境电商行业正迎来前所未有的发展机遇。在这个充满机遇的时代,武汉星起航电子商务有限公司以其独特的自营亚马逊跨境电商模式和卖家孵化服务,成为了行业内的一股强劲力量。展望未来,武汉星起航将继…

刷!简单的转录组分析+Cytoscape三小时工作量,思路易复现

说在前面 两样本孟德尔随机化应该大伙都了解的不少,不过今天看到一篇,有点“料”的文章,一句话总结:Cytoscape乱拳打死老师傅,通篇除了WGCNA、差异分析是作为常规的转录组分析方法,剩下的几乎都是ClueGO的…

AndroidStudio开发实现一个音乐播放器

文章目录 项目概述开发环境项目结构功能演示和分析视频演示主要功能点源码获取 项目概述 此次项目使用AndroidStudio开发一个音乐播放器。包含登录注册功能,播放暂停等功能,自动检索和手动检索Mp3功能。还使用Sqlite数据库做了一个音乐收藏,…

使用网络工具监控网络性能

网络工具和实用程序有助于有效地检测网络问题,诊断其原因和位置,以及缓解和解决问题,这有助于确保网络环境的稳定性,使用户免受设备连接问题带来的麻烦。 网络工具已经成为每个网络管理员用于有效诊断和处理网络问题的解决方案中…

.Net MAUI 搭建Android 开发环境

一、 安装最新版本 VS 2022 安装时候选择上 .Net MAUI 跨平台开发 二、安装成功后,创建 .Net MAUI 应用 三、使用 VS 自带的 Android SDK 下载 ,Android镜像、编译工具、加速工具 四、使用Vs 自带的 Android Avd 创建虚拟机 五、使用 Android 手机真机调试

vue3 自定义调控参数-简易生成器

vue3 自定义调控参数-简易生成器 文章目录 封装生成器控件如下父组件使用如下: 此功能好像是某厂的在线视频笔试题,当时写完也没有结果。。。我觉得此 demo 适用场景:自定义动态表单时需要定制字段、用户自定义信息等 封装生成器控件如下 /…

社媒营销必看:Instagram网页版使用指南

Instagram在全球有超过10亿的月活跃用户。其每日故事功能有超过5亿的使用量,Instagram用户每天喜欢超过4 亿个帖子——据Instagram的2024年最新报告,粉丝数在10万以下的小品牌在故事上的点击率增长了35%,少于1万个粉丝的品牌的帖子到达率增长…

【懂车帝注册安全报告-无法登陆的背后是?】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露 短信盗刷的安全问题,影响业务及导致用户投诉 带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

设置smb共享的几个注意事项

samba用户名和密码是可以设置为和创建linux时的系统用户名一样的,方法如下: 1.sudo vi /etc/samba/smb.conf 2.在最下行添加配置 3.添加samba用户名和密码,这里选择和系统用户名一样 sudo smbpasswd -a xuyy 4.重启samba服务 sudo syste…

Linux Ubuntu(玩客云) qBittorrent docker BT下载(qbittorrent 密码错误无法登录 ip地址被禁止登录等)

提示: 需要提前安装Docker 根据qBittorrent官网的更新日志https://www.qbittorrent.org/news ,4.6.1.0包含一个重大更新。可以看到自4.6.1.0开始,qBittorrent将弃用adminadmin默认密码,采用随机密码,将在终端控制台输出…

Audition处理音频文件背景音(保留人声)

音频文件背景音可以使用Adobe Audition进行处理,Adobe Audition的下载与安装见之前博客: Adobe Audition 2024 下载与安装-CSDN博客https://blog.csdn.net/xiaoxian666/article/details/138612837?spm1001.2014.3001.5502 一、选中一段不含人声的背景…

【分治算法】【Python实现】循环赛日程表

文章目录 [toc]问题描述分治算法示例Python实现 无运动员数量约束循环赛日程表算法示例Python实现 个人主页:丷从心 系列专栏:分治算法 学习指南:Python学习指南 问题描述 设有 n 2 k n 2^{k} n2k个运动员要进行网球循环赛,设…

MySQL利用变量进行查询操作

新建连接,自带world数据库,里面自带city表格。 # MySQL利用变量进行查询操作 set cityNameHaarlemmermeer; select * from city where NamecityName;# 多个结果查询 set cityName1Haarlemmermeer; set cityName2Breda; set cityName3Willemstad; selec…

友思特分享 | 激发专属跃迁:用于皮肤医美和光学研究种子源的DPSS激光器

导读 紧凑、坚固、稳定和提供高质量光束的友思特DPSS激光器因其卓越的性能,可作为激光种子源,广泛应用于皮肤医美、非线性光学OPO,以及全息投影技术。 激光(Laser)的诞生是上个世纪科学技术的巨大飞跃,其发…

【工具】如何提取一个mp4文件的关键帧

文章目录 怎么做如何安装ffmepgUbuntu 或 DebianCentOS 或 FedoramacOSWindows其他 Linux 发行版 实践什么是关键帧 怎么做 你可以使用ffmpeg这个强大的多媒体处理工具来提取mp4文件中的关键帧。以下是一个示例命令,可以使用ffmpeg从mp4文件中提取关键帧&#xff1…

Ansible-inventory和playbook

文章目录 一、inventory 主机清单1、列表表示2、inventory 中的变量3、变量3.1 主机变量3.2 组变量3.3 组嵌套 二、playbook剧本1、playbook的组成2、编写剧本2.1 剧本制作2.2 准备nginx.conf2.3 运行剧本2.4 查看webservers服务器2.5 补充参数 3、剧本定义、引用变量3.1 剧本制…

java爬虫代理ip(java爬虫代码示例)

java爬虫代理ip 在编写java爬虫时,经常会遇到需要使用代理IP来访问目标网站的情况。这时候,我们就需要编写代码来实现代理IP的功能。接下来,我们将为大家介绍如何在java爬虫中使用代理IP,以及给出相应的代码示例。 首先&#xff…

聚观早报 | 苹果新款iPad Pro发布;国产特斯拉4月交付量

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 5月9日消息 苹果新款iPad Pro发布 国产特斯拉4月交付量 iOS 18新功能爆料 真我GT Neo6续航细节 三星Galaxy Z F…

Linux——守护进程化(独立于用户会话的进程)

目录 前言 一、进程组ID与会话ID 二、setsid() 创建新会话 三、daemon 守护进程 前言 在之前,我们学习过socket编程中的udp通信与tcp通信,但是当时我们服务器启动的时候,都是以前台进程的方式启动的,这样很不优雅&#xff0c…

限时优惠||新算法转让(一种基于数学的元启发式算法)新的群智能算法转让,新的元启发式算法转让(独家发售)【仅售1份】

新算法 ||新算法转让、新的元启发式算法转让 ||一种基于数学开发的超隐喻的元启发式算法新算法 限时发售、限量1份 1️⃣完整的封装代码 2️⃣配套完整的灵感及数据 3️⃣测试集(3个) (1)cec2017(10、30、50和100维&a…
最新文章