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

一、项目背景

采用数据同步软件将各系统的数据库下的数据实时同步到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.hqwc.cn/news/176771.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AXglyph——轻量级科研绘图软件

今天博主将推荐一款简约却不简单的制图软件——axglyph。 AxGlyph是一款十分优秀的矢量绘图软件,官方版界面简洁,功能强大,支持自由矢量画笔、混合矢量路径和矢量漫水填充。支持自由定义的磁力点阵,支持插图编号及引用管理&#…

Find My平衡车|苹果Find My技术与平衡车结合,智能防丢,全球定位

随着人们环保意识的加强,电动车的数量与日俱增。与此同时,科学家经过潜心的研究,终于开发出新款两轮电动平衡车。两轮电动平衡车是一种新型的交通工具,它与电动自行车和摩托车车轮前后排列方式不同,而是采用两轮并排固…

从0开始学习JavaScript--JavaScript基础

JavaScript作为一门前端编程语言,在现代web开发中扮演着不可替代的角色。它不仅为网页增添了动态和交互性,而且随着Node.js的崛起,也在服务器端开发中占据了重要地位。在本章节中,我们将探讨JavaScript的作用、重要性以及与其他前…

如何用AI交互数字人打造数智文旅?

随着旅游业不断发展壮大,景区的功能不断扩展、业态不断延伸、硬件不断升级,但如何利用自身文旅资源打造差异化、数智化文旅景点,吸引游客与市民成为一大经营痛点。 而AI交互数字人的出现,可以极大地将文旅资源以可视化、具象化的…

Home Assistant使用ios主题更换背景

Home Assistant使用ios主题、更换背景 lovelace-ios-dark-mode-theme 默认前置情况,1、已安转HACS插件2、搜索安装 IOS Dark Mode Theme1)第一、二步应该很容易实现,configuration.yaml文件很容易被找到2)而本人在进行第三步操作时…

mysql数据库超过最大连接数

mysql 超过数据库最大连接数解决办法 1、报错信息 首先无论是navicat 执行sql还是 用idea启动多的服务都会有如下报错信息: 2、解决办法 2.1命令方式修改 这种方法是由其他资料提供的。这种修改方式是临时的,如果mysql服务重启设置就会还原&#xff…

社区论坛小程序源码系统,功能齐全,页面简洁,前端+后端+完整部署教程

现如今,社区论坛已经成为人们交流思想,分享经验,获取信息的重要平台。近年来,小程序的出现更是改变了传统的网站建设方式,让用户体验更加便捷,高效。今天源码小编来和大家分享一款社区论坛小程序源码系统&a…

MATLAB中uiwait函数用法

目录 语法 说明 示例 等待对警报对话框的响应 等待对模态消息对话框的响应 等待按钮按下 等待超时 uiwait函数功能是阻止程序执行并等待恢复。 语法 uiwait uiwait(f) uiwait(f,timeout) 说明 uiwait 阻止程序执行,直至调用了 uiresume 函数或删除了当前…

软文推广中媒体矩阵的优势在哪儿

咱们日常生活中是不是经常听到一句俗语,不要把鸡蛋放在同一个篮子里,其实在广告界这句话也同样适用,媒介矩阵是指企业在策划广告活动时,有目的、有计划的利用多种媒体进行广告传播,触达目标用户。今天媒介盒子就来和大…

C51--串口协议

1、串口通信的协议有: 波特率、起始位、数据位、停止位。 1帧数据位10位,1位起始位8位数据位1位停止位 TxD(TxD / P3.1口)为发送信息 RxD(RxD / P3.0口)为接收端接收信息 串口为全双工接受 / 发送串行口 …

【数据库开发】DataX开发环境的安装部署(Python、Java)

文章目录 1、简介1.1 DataX简介1.2 DataX功能1.3 支持的数据通道 2、DataX安装配置2.1 DataX2.2 Java2.3 Python 3、DataX Web安装配置3.1 mysql3.2 DataX Web3.2.1 简介3.2.2 架构图3.2.3 依赖环境3.2.4 安装 4、入门使用4.1 DataX自带打印示例测试4.2 DataX生成任务模板文件4…

会员题-力扣408-有效单词缩写

有效单词缩写 字符串可以用 缩写 进行表示,缩写 的方法是将任意数量的 不相邻 的子字符串替换为相应子串的长度。例如,字符串 “substitution” 可以缩写为(不止这几种方法): “s10n” (“s ubstitutio n”) “sub4…