高级DBA带你解决达梦国产数据库数据同步至clickhouse数据库通用方法(全中国唯一一份)关键技术讲解

news2024/11/25 11:45:04

步骤1、安装达梦8国产数据库

参考笔者之前写的博文,怎么安装国产达梦8数据库,按博文提前装好!

https://blog.csdn.net/nasen512/article/details/126872483   

在这里插入图片描述

步骤2、安装好clickhouse数据库

参考笔者之前写过的博文,将clickhouse数据库提前安装好!

https://blog.csdn.net/nasen512/article/details/126954425

在这里插入图片描述

步骤3、安装etl中间件ClickHouse JDBC Bridge

Clickhouse-jdbc-bridge:是clickhouse提供的一个jdbc组件,用于通过JDBC的方式远程访问其他数据库表。

Clickhouse支持通过JDBC连接外部数据库,所有支持JDBC驱动的数据库都能直接接入clickhouse。要实现JDBC连接,clickhouse需要使用以后台进程运行的程序 clickhouse-jdbc-bridge。
JDBC表引擎可以对接Mysql、Postgresql、SQLite等数据库,但是JDBC表引擎不能单独完成对接工作,需要依赖clickhouse-jdbc-bridge的查询代理服务,clickhouse-jdbc-bridge是java语言实现的sql代理服务,项目地址为:

https://github.com/ClickHouse/clickhouse-jdbc-bridge   #作者的资源库有直接可以去下载RPM安装包
https://clickhouse.com/docs/zh/engines/table-engines/integrations/jdbc    # clickhouse官网的介绍

在这里插入图片描述
在这里插入图片描述
我们看懂架构图,则需要保证
ClickHouse JDBC Bridge第三方插件要能正常练到2个数据库。我们可以把这个插件看出是2个数据库直接的桥梁!

达梦8数据库肯定是完整支持jdbc协议的,所以这个就存在2个数据库数据类型的一一映射关系,这个关系,就在ClickHouse JDBC Bridge维护。
在这里插入图片描述

步骤4、ClickHouse JDBC Bridge安装部署方法

一、ClickHouse JDBC Bridge下载安装RPM包

https://github.com/ClickHouse/clickhouse-jdbc-bridge    #github下载地址

直接去笔者的资源库自行去下载更方便
在这里插入图片描述
在这里插入图片描述

rpm -ivh  clickhouse-jdbc-bridge-2.1.0-1.noarch.rpm    #安装命令

二、ClickHouse JDBC Bridge 配置

cd /etc/clickhouse-jdbc-bridge/config/datasources      #安装成功后自动生成配置路径

根据模板生成配置

touch datasource.json   #创建配置文件
{
  "$schema": "../datasource.jschema",
  "ch-server": {
    "aliases": [
      "self"
    ],
    "driverUrls": [
      "https://repo1.maven.org/maven2/com/clickhouse/clickhouse-jdbc/0.3.2-patch8/clickhouse-jdbc-0.3.2-patch8-http.jar"
    ],
    "driverClassName": "com.clickhouse.jdbc.ClickHouseDriver",
    "jdbcUrl": "jdbc:clickhouse://172.18.21.68:8123/system?compress=false",
    "username": "default",
    "password": "",
    "maximumPoolSize": 5
  },

 "dm-server": {
    "aliases": [
      "dm"
    ],
    "timezone":"GTM+8",
     "converter": {
              "mappings": [{ "nativeType": "TIMESTAMP", "toType": "String" },
              { "nativeType": "DATE", "toType": "String" }]
                      },
    "driverUrls": [
      "/etc/clickhouse-jdbc-bridge/drivers/DmJdbcDriver18.jar"
    ],
    "driverClassName": "dm.jdbc.driver.DmDriver",
    "jdbcUrl": "jdbc:dm://172.18.21.147:5236/NASEN",
    "username": "NASEN",
    "password": "",
    "maximumPoolSize": 100
  }





}



















{
  "$schema": "../datasource.jschema",
  "ch-server": {
    "aliases": [
      "self"
    ],
    "driverUrls": [
      "https://repo1.maven.org/maven2/com/clickhouse/clickhouse-jdbc/0.3.2-patch8/clickhouse-jdbc-0.3.2-patch8-http.jar"
    ],
    "driverClassName": "com.clickhouse.jdbc.ClickHouseDriver",
    "jdbcUrl": "jdbc:clickhouse://172.18.25.88:8123/system?compress=false",
    "username": "default",
    "password": "123456",
    "maximumPoolSize": 5
  },

 "dm-server": {
    "aliases": [
      "dm"
    ],



   "timezone":"GTM+8",



    "driverUrls": [
      "/etc/clickhouse-jdbc-bridge/drivers/DmJdbcDriver18-8.1.2.141.jar"
    ],
    "driverClassName": "dm.jdbc.driver.DmDriver",
    "jdbcUrl": "jdbc:dm://172.18.21.167:5236?SCHEMA=dbname&localTimezone=480",
    "username": "nasen",
    "password": "123",
    "maximumPoolSize": 100
  }

上传启动包

cd /etc/clickhouse-jdbc-bridge/drivers

在这里插入图片描述

clickhouse-jdbc-0.3.2-patch8-http.jar
dm8-oracle-jdbc16-wrapper.jar
DmJdbcDriver18.jar

三、后台启动ClickHouse JDBC Bridge服务

nohup clickhouse-jdbc-bridge > /home/clickhouse-jdbc-bridge.log 2>&1 &

四、clickhouse设置与ClickHouse JDBC Bridge联通配置

cd /etc/clickhouse-server  #进到配置路径
vi config.xml   #追加配置文件最后

在文件最后追加下面内容

 <jdbc_bridge>
        <host>172.18.21.141</host>
        <port>9019</port>
    </jdbc_bridge>

五、clickhouse测试验证

select * from jdbc('', 'show datasources')
select * from jdbc('dm', 'select * from NASEN.NASEN_TEST')

作者总结

过程中遇到了一些问题比如时区的问题,数据同步之后,时区相差8小时!
过程很复杂,分析源码,反复测试,最终发现还有个隐藏的java时区的配置。是反复看了源码,最终猜出来的。
当然也是下段配置得到线索,最终通过代码加了那个配置。测试正常了!

笔者是去github上拿下源码,恢复到自己电脑上,凭运气分析,猜出来的,居然有个神秘的时区配置。

https://blog.csdn.net/nasen512/article/details/128446822  #笔者解决同步之后时间时常问题

把整个技术数据流程串联起来,就能完成达梦数据库与clickhouse数据的同步!当然clickhouse-jdbc-bridge是github上的国外的公益团队开发的插件,给他们点赞。笔者也把自己的经验写出来,希望可以帮助大家。

笔者自己攻克这个技术难题私下也是花了很多的时间,去攻读国外读文档,也参考很多同僚的文章总结的,整个过程还是挺不容易,尤其是解决那个时区的问题!

作者本人简介:现任国内某大型软件公司大数据研发工程师、MySQL数据库DBA,软件架构师。直接参与设计国家级亿级别大数据项目。并维护真实企业级生产数据库上千余个。紧急处理数据库生产事故上百起,挽回数据丢失所操作的灾难损失不计其数。

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

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

相关文章

Hadoop HDFS 高阶优化方案

目录 一、短路本地读取&#xff1a;Short Circuit Local Reads 1.1 背景 ​1.2 老版本的设计实现 ​1.3 安全性改进版设计实现 1.4 短路本地读取配置 1.4.1 libhadoop.so 1.4.2 hdfs-site.xml 1.4.3 查看 Datanode 日志 二、HDFS Block 负载平衡器&#xff1a;Balan…

python通过docker打包执行

背景 正常情况下,python脚本执行需要安装有python环境,那python环境虽然也可以通过移植的方法来安装,那总归是比较麻烦的,下面通过docker打包的方式来执行python脚本 1、安装python镜像 准备两个文件即可,dockerfile、requirements.txt两个文件的内容分别如下 同目录下…

如何做好住宅区门禁监控,这回总算说全了

门禁监控在现代社会中已经变得愈发重要&#xff0c;特别是在住宅小区。随着城市化进程的加速和人口密度的增加&#xff0c;住宅小区的安全管理成为了一个至关重要的挑战。为了确保居民的安全和财产的保护&#xff0c;门禁监控系统逐渐成为了必备的设施之一。 客户案例 太原某小…

人大金仓V8数据库安装补充资料

之前写过一篇人大金仓数据库安装文档,自我感觉太过简练。这里补充一些资料。 命令行安装过程中,英文提示还比较简单。 安装默认第一项是完整安装,第二项是安装客户端软件,第三项是自定义安装。 这里选择了第一项。 File Path需要输入license文件的绝对路径且包括文件名。…

Jetpack Compose Accompanist最近的更新-2023年8月25日

Jetpack Compose Accompanist最近的更新-2023年8月25日 这篇文章更新了Jetpack Compose Accompanist库的情况&#xff0c;介绍了其目的和最新上传的功能&#xff0c;包括Pager、Flow Layout、Navigation Animation和Insets-UI。同时&#xff0c;提到了对一些库未来发展的讨论。…

光伏瓦屋顶

光伏瓦是由非晶硅材料制成的有光伏电池的屋面板&#xff0c;把光伏组件嵌入支撑结构&#xff0c;使太阳能板和建筑材料结为一体&#xff0c;直接应用于屋顶&#xff0c;和普通屋面瓦一样安装在屋面结构上。然后&#xff0c;光伏材料和组件将光转化为电能&#xff0c;通过吸收太…

5步搞定!!1Centos 7设置elasticsearch 7.12.1开机自启动

搞虚拟机玩&#xff0c;从网上看了很多es开机自启的方法&#xff0c;都试了&#xff0c;没有效果&#xff0c;最后尝试了shell脚本的方式&#xff0c;记录一下&#xff01; .sh文件内容&#xff1a; #!/bin/bash export JAVA_HOME/path/to/elasticsearch/jdk export JRE_HOME$…

Mybatis学习|基本的crud、数据库字段与对照类字段不一致问题

1.查询&#xff1a;根据id去查用户 在Dao层的UserMapper接口中增加根据id查用户的方法&#xff0c;定义方法名、传的参数以及返回值 在与UserMapper接口绑定的UserMapper.xml中配置该方法对应的sql语句 编写测试用例 2.增加&#xff1a;插入一个新用户 在Dao层的UserMapper接…

Spring源码分析(十)Bean实例化(下)

目录 1.1 循环依赖1.2 属性填充1.2.1 populateBean方法1.2.2 initializeBean方法执行Aware方法执行BeanPostProcessor后置处理器的前置处理方法执行初始化方法执行BeanPostProcessor后置处理器的后置处理方法&#xff1a;postProcessAfterInitialization()&#xff0c;允许对be…

低代码在未来会颠覆开发行业吗?

今天是正经男&#xff0c;我们严肃讨论一下一直以来争吵不休的取代问题。 低代码开发平台&#xff0c;低代码技术会取代开发人员么&#xff1f; 一、背景 低代码开发平台的普及&#xff0c;让很多公司对快速生成应用抱有很大期望。甚至有人认为&#xff0c;低代码开发平台未来会…

IntelliJ IDEA 2023.2.1 Android开发变化

IntelliJ IDEA 2023.2.1之前的版本&#xff0c;Empty Activity是指Empty View Activity&#xff0c;而现在Empty Activity是指Empty Compose Activity&#xff0c;另外多了一个Empty View Activity的选项 这表明官方推荐使用Compose这种声明式的编程方式来描述UI&#xff0c;命…

正中优配:炒股软件自动提示买卖点?

股票商场好像大海般改变多端&#xff0c;许多股民往往由于没有精确的生意点而错失良机&#xff0c;导致亏损惨重。在这种情况下&#xff0c;许多炒股爱好者就开始寻觅主动提示生意点的炒股软件&#xff0c;以便在股票商场中抢占先机。 可是&#xff0c;真的有这样奇特的炒股软…

如何给文件夹设置密码

文件夹怎么设置密码,如何给文件夹设置密码?有些重要的文件或比较隐私的文件存放在电脑上&#xff0c;这些文件我们只希望自己能看到并使用&#xff0c;不希望别人访问。那么&#xff0c;最好的办法就是去对这些文件进行加密。 才不怕别人看到自己的隐私&#xff0c;设置密码&a…

什么是RESTful API,Spring MVC如何支持RESTful架构

文章目录 &#x1f388;个人主页&#xff1a;程序员 小侯 &#x1f390;CSDN新晋作者 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 ✨收录专栏&#xff1a;Java框架 ✨文章内容&#xff1a;Spring MVC支持RESTful架构 &#x1f91d;希望作者的文章能对你有所帮助&#xf…

问道管理:日换手率达20是好是坏?

关于股票商场的出资者而言&#xff0c;日换手率是一个非常重要的目标。日换手率是指股票当日买卖量与该股总股本之比。假如一只股票的日换手率过高&#xff0c;那么就意味着该股票的流动性较强&#xff0c;而假如日换手率过低&#xff0c;那么就意味着该股票的流动性较弱。 那…

认识ESP32(什么是RSP32)

一、认识ESP32 ESP32 是一款由乐鑫信息科技&#xff08;Espressif Systems&#xff09;开发的微控制器&#xff08;Microcontroller&#xff09;&#xff0c;它广泛用于物联网&#xff08;IoT&#xff09;和嵌入式系统应用。以下是一些 ESP32 的主要特点&#xff1a; 双核处理…

驶向高效运营,StarRocks 助力蔚来汽车数据分析再升级

作者&#xff1a;蔚来汽车数字化业务发展部大数据团队 小编导读&#xff1a; 蔚来汽车是一家全球化的智能电动汽车公司&#xff0c;是高端智能汽车市场的先驱及领跑者。蔚来致力于通过提供高性能的智能电动汽车与极致用户体验&#xff0c;为用户创造愉悦的生活方式。 为了提升…

一文全面了解APP积分墙

“积分墙”是在一个应用内展示各种积分任务(下载安装推荐的优质应用、注册、填表等),以供用户完成任务获得积分的页面。通俗点说,类似于用户在某一个应用中,看到一个悬赏榜(这个榜可以理解为“墙”),榜上有各种其他应用,不同的应用对应着不同的积分,只要用户根据规则(下载安装应…

kaggle新赛:谷歌AI模型运行时间预测赛题解析【数据挖掘】

赛题名称&#xff1a;Google - Fast or Slow? Predict AI Model Runtime 赛题链接&#xff1a;https://www.kaggle.com/competitions/predict-ai-model-runtime 赛题背景 Alice 是一名 AI 模型开发人员&#xff0c;但她的团队开发的一些模型运行速度非常慢。她最近发现了编…

微服务容错 Resilience4j 接口服务-容错原理

微服务容错 Resilience4j 容错原理 4.1 微服务容错简介 在⾼并发访问下&#xff0c;⽐如天猫双11&#xff0c;流量持续不断的涌⼊&#xff0c;服务之间的相互调⽤频率突然增加&#xff0c;引发系统负载过⾼&#xff0c;这时系统所依赖的服务的稳定性对系统的影响⾮常⼤&#…