【用户实践】openGauss5.0在某省医保局实时数仓应用

news2025/1/25 9:20:06

一、项目背景

采用数据同步软件将各系统的数据库下的数据实时同步到openGauss数据库中;
建立实时数仓;
可以在实时数仓自行查询、分析、统计数据及报表;
同时横向集成公共服务区和核心业务区生产库数据、集成其他委办局数据。
纵向集成市级的生产库数据和向省级交换库同步数据;
协同国家数据中台的数据归集工作;
并通过高灵活、高性能的优势,也可进行数据的分析、挖掘以及二次应用。

二、同步架构图

架构描述:源端华为云rds mysql 5.7.33 ,目标端是openGauss5.0
源端mysql是DDM分库分表架构,
需要把一张表切分成多张表后同步到openGauss 一张表里。
同步架构属于多对一。
下图deb:Debezium

4e52477bcf07175a65992e5096827677.jpeg

三、环境介绍

ip 名称 说明 192.168.10.2 mysql 源端数据库 192.168.10.3 Debezium 数据同步工具 192.168.10.4 openGauss 目标端数据库

四、工具准备

kafka
Debezium MySQL Connector
JDBC sink Connector

源端mysql参数配置
log_bin=on
binlog_format=row
binglog_row_image=full

目标端openGauss参数配置
wal_level=logical
上传wal2json
cd $GAUSSHOME/lib/postgresql
ls wal2json.so
wal2json.so

替换jar包
debezium-connector-postgres-1.4.0-SNAPSHOT.jar
postgres.jar

五、源端和目标端测试数据准备

源端数据准备如下:
nmsimis_0.ac09_0
nmsimis_1.ac09_0
nmsimis_2.ac09_0

源端用华为DDM分库分表工具已经把ac09表切分成3个库中,如下:

mysql> use nmsimis_0;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+---------------------+
| Tables_in_nmsimis_0 |
+---------------------+
| ac09_0 |
+---------------------+
1 rows in set (0.00 sec)

mysql> use nmsimis_1;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+---------------------+
| Tables_in_nmsimis_1 |
+---------------------+
| ac09_0 |
+---------------------+
1 rows in set (0.00 sec)
mysql> use nmsimis_2;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+---------------------+
| Tables_in_nmsimis_2 |
+---------------------+
| ac09_0 |
+---------------------+
1 rows in set (0.00 sec)

mysql> show create table ac09_0;
+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| ac09_0 | CREATE TABLE `ac09` (
`id` varchar(30) NOT NULL,
`xm` varchar(50) DEFAULT NULL,
`dz` varchar(50) DEFAULT NULL,
`csrq` datetime DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

目标端:openGauss
数据库名:dbserver1 模式:nmsimis

六、项目实施

6.1、启动kafka和deb

/dbms/kafka/bin/zookeeper-server-start.sh -daemon /dbms/kafka/config/zookeeper.properties
/dbms/kafka/bin/kafka-server-start.sh -daemon /dbms/kafka/config/server.properties
/dbms/kafka/bin/connect-distributed.sh -daemon /dbms/kafka/config/connect-distributed.properties

0aa304ef71172a8dc28d29f84d9dfe8d.jpeg

6.2、查看deb支持的插件

[root@k8s-node1 ~]# curl -s 192.168.10.3:8083/connector-plugins|jq
[
{
"class": "io.confluent.connect.jdbc.JdbcSinkConnector",
"type": "sink",
"version": "5.3.2"
},
{
"class": "io.confluent.connect.jdbc.JdbcSourceConnector",
"type": "source",
"version": "5.3.2"
},
{
"class": "io.debezium.connector.mysql.MySqlConnector",
"type": "source",
"version": "1.5.4.Final"
},
{
"class": "org.apache.kafka.connect.file.FileStreamSinkConnector",
"type": "sink",
"version": "2.8.2"
},
{
"class": "org.apache.kafka.connect.file.FileStreamSourceConnector",
"type": "source",
"version": "2.8.2"
},
{
"class": "org.apache.kafka.connect.mirror.MirrorCheckpointConnector",
"type": "source",
"version": "1"
},
{
"class": "org.apache.kafka.connect.mirror.MirrorHeartbeatConnector",
"type": "source",
"version": "1"
},
{
"class": "org.apache.kafka.connect.mirror.MirrorSourceConnector",
"type": "source",
"version": "1"
}
]

6.3、创建连接器

--配置源端mysql连接器,如下图

ce915dee16f366f9a54e2a66b53ad7ab.jpeg

--配置目标端
curl -s http://192.168.10.3:8083/connectors/openGauss-ac09-connector -X GET|jq

09ea3e70a86b28ebd39f58b7ab1137c7.jpeg

6.4、查看连接器状态

[root@k8s-node1 ~]# curl -s http://192.168.10.3:8083/connectors/ -X GET|jq
[
"mysql-ac09-connector",
"openGauss-ac09-connector"
]

e5e19727f14a6325bc9f37895a5df03c.jpeg

curl -s http://192.168.10.3:8083/connectors/openGauss-ac09-connector/status -X GET|jq

81006026e93291a5506fe25fc2476c7f.jpeg

6.5、验证表初始化

--通过登录openGauss查看表结构已经同步过来,如下图

163ed8cc2131fe653c249c3a37881281.jpeg

6.6、验证DML实时同步

源端:插入数据

adbf0ed488b64d7889effeda53523a0c.jpeg

查看目标端:

cac7c2c909492ed9a8d7ede6e7567a53.jpeg

七、总结

构建实时数据仓库的关键之一就是设计一个可靠而强大的数据库架构。这就像在峡谷中建造一座坚固的桥梁,让你的数据可以安全地流动。openGauss可以轻松应对海量数据的处理和存储。就像一位巧妙的工程师,openGauss在背后默默助力,为你的数据仓库提供强大的基础。它的灵活性和扩展性让你能够根据业务需求精确地设计数据模型,确保数据的准确性和一致性。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用Zoho Projects软件进行高效项目管理的方法

本文将通过Zoho Projects项目管理软件的功能,结合一般情况下使用Zoho Projects进行项目管理的过程,为大家展示如何充分利用Zoho Projects项目管理软件进行项目管理。我们将详细介绍任务看板、文档管理、甘特图与报表、里程碑、issue等功能,基…

PieCloudDB Database 自研内存管理器 ASanAlloc:为产品质量保驾护航

内存管理是计算机科学中至关重要的一部分,它涉及到操作系统、硬件和软件应用之间的动态交互。有效的内存管理可以确保系统的稳定性和安全性,提高系统运行效率,帮助我们最大限度地利用有效的内存资源,合理分配和回收内存&#xff0…

TikTok:传承文化多样性,扬播全球声音

在数字时代,社交媒体平台已经成为了传播文化多样性和全球声音的重要渠道。其中,TikTok无疑是最引人注目的之一。 这个短视频应用在短短几年内迅速崭露头角,吸引了全球数亿用户,成为一个独特的文化传媒工具,通过短视频…

芯向未来|紫光展锐CEO任奇伟博士受邀主持ICCAD 2023高峰论坛

11月10日至11日,中国集成电路设计业2023年会暨广州集成电路产业创新发展高峰论坛(ICCAD 2023)在广州保利世贸博览馆召开,本届年会以“湾区有你,芯向未来”为主题,分开幕式、高峰论坛、7场专题研讨、产业展览…

黑客帝国中的黑客如何隐藏自己的IP,你不可不知的正向代理和反向代理

文章目录 前言正向代理常用使用场景VPN动态 IP 代理隐藏客户端 IP 反向代理使用场景堡垒机nginx 负载均衡 动态 IP 代理实现分类按匿名分类按成本分类按协议分类 原理nodeJs 简单实现 总结个人简介 前言 hello,大家好,我是 Lorin ,今天给大家…

element el-upload上传功能

2023.11.14今天我学习了如何使用el-upload: <!--drag设置可拖动--><!--accept".xlsx"设置上传的文件类型--><!--:limit1上传文件的最大个数--><!--:auto-upload"false"是否在选取后直接上传--><!--:before-upload"beforeU…

概念回顾: API 和 API 互联

原文作者&#xff1a;NGINX 原文链接&#xff1a;概念回顾&#xff1a; API 和 API 互联 转载来源&#xff1a;NGINX 开源社区 NGINX 唯一中文官方社区 &#xff0c;尽在 nginx.org.cn 随着微服务架构的兴起&#xff0c;API 的数量急剧增加&#xff0c;由此也产生了一系列的挑…

2019年五一杯数学建模B题木板最优切割方案解题全过程文档及程序

2019年五一杯数学建模 B题 木板最优切割方案 原题再现 徐州某家具厂新进一批木板如表 1 所示&#xff0c;在家具加工的过程中&#xff0c;需要使用切割工具生产表 2所示的产品。假设&#xff1a;木板厚度和割缝宽度忽略不计。   请为该家具厂给出如下问题的木板最优切割方…

队列与堆栈:原理、区别、算法效率和应用场景的探究

队列与堆栈&#xff1a;原理、区别、算法效率和应用场景的探究 前言原理与应用场景队列原理应用场景&#xff1a; 堆栈原理应用场景递归原理和堆栈在其中的作用递归原理堆栈作用 队列与堆栈区别队列堆栈算法效率 前言 本文主要讲解数据结构中队列和堆栈的原理、区别以及相关的…

requests库验证错误解决方法

用户在使用requests库进行http请求时&#xff0c;遇到了一个AuthenticationRequired&#xff08;身份验证必须&#xff09;的错误。但是&#xff0c;当使用urllib.request.urlopen进行相同的操作时&#xff0c;却能够成功。同时&#xff0c;用户提供了自己的系统信息&#xff0…

GPT 学习法:恐怖算力 + 精确算法,实现复杂文献轻松的完美理解、在庞大的不确性中找到确定性

GPT 学习法&#xff1a;恐怖算力 精确算法&#xff0c;实现复杂文献轻松的完美理解、在庞大的不确性中找到确定性 复杂文献 - 恐怖算力 精确算法&#xff0c;复杂文献轻松的完美理解GPT 理解法 - 举例子、归纳、逻辑链推导本质、图示、概念放大器实战案例&#xff1a;学习高精…

省级数字经济政策词频分析数据集(2005-2023)

数据简介&#xff1a;当今社会&#xff0c;数字经济已经成为推动世界经济发展和社会变革的重要动力。随着信息技术的迅猛发展和智能化技术的普及应用&#xff0c;数字经济政策的制定和实施变得愈发重要。数字经济政策的词频分析成为了对政策文件和宣言进行深度解读的关键工具。…

Vue 中 slot 是什么?作用?分类?如何实现?

结论先行&#xff1a; slot 插槽&#xff0c;是子组件提供给父组件使用的一个占位符&#xff0c;父组件可以在这个占位符中填充任何模板代码。主要作用就是更好的拓展和定制化组件&#xff0c;例如弹窗组件、表格组件等。分为默认插槽、具名插槽和作用域插槽。 其中前两个都是…

SecureCRT 9.2.4最新

SecureCRT是一款功能强大的终端仿真软件&#xff0c;它通过提供安全的、高效的会话&#xff0c;帮助用户在远程设备上完成各种任务。SecureCRT具有出色的性能和可靠性&#xff0c;能够处理复杂的网络环境&#xff0c;提供高效的远程访问和管理。 SecureCRT的主要特点包括&…

【跨境电商独立站新手入门手册】

一直想要更新一个独立站的系列合集&#xff0c;用小白也看得懂的方式阐述怎么从0到1搭建并运营一个独立站&#xff0c;并且后续我也会录制成视频。 今天&#xff0c;它来了。 这是《跨境电商独立站新手入门手册》系列的第一篇。 你是否有过这样的经历&#xff1a;当你在网上浏…

实用篇-ES-RestClient操作文档

一、RestClient案例准备 对es概念不熟悉的话&#xff0c;先去看上面的 实用篇-ES-索引库和文档&#xff0c;不建议基础不牢就直接往下学 ES官方提供了各种不同语言的客户端&#xff0c;用来操作ES。这些客户端的本质就是组装DSL语句&#xff0c;通过http请求来发送给ES。 官…

zabbix的服务器端 server端安装部署

zabbix的服务器端 server 主机iplocalhost&#xff08;centos 7&#xff09;192.168.10.128 zabbix官网部署教程 但是不全&#xff0c;建议搭配这篇文章一起看 zabbixAgent部署 安装mysql 所有配置信息和Zabbix收集到的数据都被存储在数据库中。 下载对应的yum源 yum ins…

openGauss Summit 2023 | Call for Sponsor、Speaker、Demo

数据库作为千行万业数据的基石&#xff0c;也是推动数字经济发展的核心。随着数字经济的蓬勃发展&#xff0c;数据库将迎来更加广阔的应用场景和更加迫切的需求。openGauss 社区旨在汇聚产、学、研、用多方力量&#xff0c;聚焦基础软件核心能力的构建&#xff0c;引领国内数据…

煮蛋器产业研究:全球市场将超过10亿美元

近年来&#xff0c;随着科技的迅猛发展&#xff0c;煮蛋器市场逐渐呈现出多元化和智能化趋势。厂商们不断推出新款煮蛋器&#xff0c;配备更多功能以满足消费者的个性化需求。同时&#xff0c;煮蛋器也受益于烹饪技术的创新&#xff0c;如加热控制和计时功能等的引入&#xff0…

44. Adb调试QT开发的Android程序实用小技巧汇总

1. 说明 使用QT开发Android应用时,如果程序本身出现了问题,很难进行调试。不像在linux或者windows系统中,可以利用QtCreator软件本身进行一些调试,安卓应用一旦在系统中安装后,如果运行中途出现什么BUG,定位问题所在很麻烦。不过,好在有adb这种调试工具可以代替QtCreat…