oracle数据库使用JDBC导入ClickHouse数据

news2024/12/19 2:52:37

一、背景

需求要把oracle中的数据导入到clickhouse中,使用clickhouse的jdbc表引擎,把oracle11g的数据导入到clickhouse中。

二、方案

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

三、clickhouse-jdbc-bridge的下载和安装

3.1 下载clickhouse-jdbc-bridge

(1)登录官网:https://github.com/ClickHouse/clickhouse-jdbc-bridge/releases,下载源码程序到本地

(2)将clickhouse-jdbc-bridge-2.1.0-shaded.jar放在Linux服务器的目录/opt/clickhouse-jdbc-bridge下,并在该文件同级目录下新建3个目录:

config/datasources    --存放数据源配置文件
drivers                        --jdbc驱动存放目录

logs                            --存放日志

3.2 下载Oracle对应的驱动包

(1)oracle驱动的下载和配置

下载地址: https://maven.xwiki.org/externals/com/oracle/jdbc/ojdbc8/12.2.0.1/ojdbc8-12.2.0.1.jar

(2)放置到/opt/clickhouse-jdbc-bridge/drivers目录下。

 3.3 配置clickhouse-jdbc-bridge远程的数据库信息

#创建config目录及其子目录
mkdir -p /opt/clickhouse-jdbc-bridge/config/datasources  


在datasources目录下创建数据源配置文件,msjdbc.json文件名尽量与配置中的datasource名一致,如下配置:

{
  "msjdbc": {
      "driverUrls": [
          "/opt/clickhouse-jdbc-bridge/drivers/ojdbc8-12.2.0.1.jar"
       ],
      "driverClassName": "oracle.jdbc.driver.OracleDriver",
      "jdbcUrl": "jdbc:oracle:thin:@远程连接oracle数据库ip:1521:ora11g",
      "username": "ra",
      "password": "密码",
      "connectionTestQuery": ""
   }

 当前Linux服务器的目录为:

[root@localhost clickhouse-jdbc-bridge]# tree
.
├── clickhouse-jdbc-bridge-2.1.0-shaded.jar
├── config
│   └── datasources
│       └── msjdbc.json
├── drivers
│   └── ojdbc8-12.2.0.1.jar
├── logs
└── nohup.out

3.4 运行clickhouse-jdbc-bridge 

cd /opt/clickhouse-jdbc-bridge
nohup java -Duser.timezone=CN -jar clickhouse-jdbc-bridge-2.1.0-shaded.jar &

##注意 -Duser.timezone=CN 是在请求oracle11 的时候,会有时区的报错 添加这个报错消失

3.5 查看clickhouse-jdbc-bridge的日志

tail -10f nohup.out

3.6 修改clickhouse-server的配置文件

到/etc/clickhouse-server目录下的config.xml文件,找到以下代码,移除注释,并修改host为执行clickhouse-jdbc-bridge-2.1.0-shaded.jar的ip地址:

<jdbc_bridge>
   <host>127.0.0.1</host>
   <port>9019</port>
</jdbc_bridge>

保存之后,重启clickhouse服务

systemctl restart clickhouse-server
 

3.7 查询数据

SELECT * FROM jdbc('msjdbc', 'select count(*) from CERT_INFO')

select * FROM jdbc('jdbc:oracle:thin:账号/密码@xx.xx.xx.xx:端口/服务名', 'select * from test_tb')

 

3.8 插入外部表数据

首先参照oracle的表结构在clickhouse创建表

CREATE TABLE default.CERT_INFO
(
    `CERTID` Int64,
    `USERID` Int64,
   ...
    `APPLYTIME` Nullable(DateTime64(3)),
   ...
    `KEYALG` Nullable(String),
  ...
    `UPDATETIME` Nullable(DateTime64(3))
)
ENGINE = MergeTree
PRIMARY KEY CERTID
ORDER BY CERTID
SETTINGS index_granularity = 8192


##默认为非空,如果允许空值,需指定Nullable


插入数据:
 insert into CERT_INFO_TEST(CERTID,USERID,...,UPDATETIME) SELECT * FROM jdbc('msjdbc', 'select * from CERT_INFO)

250万数据,耗时236秒,插入完成,提示如下:
0 rows in set. Elapsed: 236.850 sec. Processed 2.53 million rows, 3.06 GB (10.68 thousand rows/s., 12.94 MB/s.)

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

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

相关文章

[面试直通版]网络协议面试核心之IP,TCP,UDP-TCP与UDP协议的区别

点击->计算机网络复习的文章集<-点击 目录 前言 UDP TCP 区别小总结 前言 TCP和UDP都是在传输层&#xff0c;在程序之间传输数据传输层OSI模型&#xff1a;第四层TCP/IP模型&#xff1a;第三层关键协议&#xff1a;TCP协议、UDP协议传输层属于主机间不同进程的通信传…

Unity Lighting -- 光照入门

识别光源 首先来看一张图&#xff0c;看看我们能在这个场景中找到几个光源。 相信大家能够很容易看出来&#xff0c;四盏路灯模型带有四个光源&#xff0c;右边的红绿蓝三个发光的灯也是光源。场景中还有一个光源&#xff0c;这个光源来自天空&#xff0c;让场景看起来有点日落…

尚医通(二十四)就医提醒和预约统计

目录一、就医提醒1、搭建定时任务模块二、后台管理系统-预约统计功能1、开发每天预约数据接口2、封装远程调用接口4、整合统计功能前端一、就医提醒 我们通过定时任务&#xff0c;每天8点执行&#xff0c;提醒就诊 1、搭建定时任务模块 &#xff08;1&#xff09;添加依赖 &l…

【MySQL】调控 字符集

一、 MySQL 启动选项 & 系统变量 启动选项 是在程序启动时我们程序员传递的一些参数&#xff0c;而 系统变量 是影响服务器程序运行行为的变量 1.1 启动项 MySQL 客户端设置项包括&#xff1a; 允许连入的客户端数量 、 客户端与服务器的通信方式 、 表的默认存储引擎 、…

zookeeper入门到精通

文章目录一、zookeeper入门1. 概述zookeeper的工作机制2.特点3.数据结构4.应用场景4.1.统一命名服务4.2.统一配置管理4.3.统一集群管理4.4.服务器节点动态上下线4.5.软负载均衡5.下载地址二、zookeeper安装1.本地模式安装2.配置参数解读三、zookeeper集群操作1.集群操作1.1 集群…

C++学习笔记-继承

继承的基本概念 类与类之间的关系 has-A&#xff0c;包含关系&#xff0c;用以描述一个类由多个“部件类”构成&#xff0c;实现has-A关系用类的成员属性表示&#xff0c;即一个类的成员属性是另一个已经定义好的类。 use-A&#xff0c;一个类使用另一个类&#xff0c;通过类…

前端面试题整理6-react

React 中 keys 的作用是什么&#xff1f; Keys是 React 用于追踪哪些列表中元素被修改、被添加或者被移除的辅助标识 在开发过程中&#xff0c;我们需要保证某个元素的 key 在其同级元素中具有唯一性。在 React Diff 算法中React 会借助元素的 Key 值来判断该元素是新近创建的还…

第五章 Opencv图像的几何变换

目录1.缩放图像1-1.resize()方法2.翻转图像2-1.flip()方法3.仿射变换图像3-1.warpAffine()方法3-2.平移3-3.旋转3-4.倾斜4.透视图像4-1.warpPerspective()方法几何变换是指改变图像的几何结构&#xff0c;例如大小、角度和形状等&#xff0c;从而使图像呈现出缩放、翻转、仿射和…

KUKA机器人外部自动运行模式的相关信号配置

KUKA机器人外部自动运行模式的相关信号配置 通过例如PLC这样的控制器来进行外部自动运行控制时,运行接口向机器人控制系统发出机器人进程的相关信号(例如运行许可、故障确认、程序启动等),机器人向上级控制系统发送有关运行状态和故障状态的信息。 必需的配置:  配置CEL…

Oracle-01-简介篇

&#x1f3c6;一、Oracle的历史和发展 Oracle公司成立于1977年&#xff0c;由拉里埃里森&#xff08;Larry Ellison&#xff09;、鲍勃明特&#xff08;Bob Miner&#xff09;和埃德奥茨&#xff08;Ed Oates&#xff09;共同创立。起初&#xff0c;公司的主要业务是开发和销售…

docker基础用法及镜像和容器的常用命令大全

1.docker 体系架构 Docker 采用了 C / S 架构&#xff0c;包括客户端和服务端。Docker 守护进程作为服务端接受来自客户端的请求&#xff0c;并处理这些请求&#xff08;创建、运行、分发容器&#xff09;。客户端和服务端既可以运行在一个机器上&#xff0c;也可通过 socket 或…

数字IC手撕代码--乐鑫科技(次小值与次小值出现的次数)

前言&#xff1a;本专栏旨在记录高频笔面试手撕代码题&#xff0c;以备数字前端秋招&#xff0c;本专栏所有文章提供原理分析、代码及波形&#xff0c;所有代码均经过本人验证。目录如下&#xff1a;1.数字IC手撕代码-分频器&#xff08;任意偶数分频&#xff09;2.数字IC手撕代…

九龙证券|阿里+鸿蒙+人工智能+元宇宙概念热度爆棚,“会说话的猫”亮了!

近一周组织调研个股数量有240多只&#xff0c;汤姆猫成为调研组织数量最多的股票。 证券时报数据宝统计&#xff0c;近一周组织调研公司数量有240多家。从调研组织类型来看&#xff0c;证券公司调研相对最广泛&#xff0c;调研230多家公司。 “会说话的猫”亮了 汤姆猫成为近…

倒计时3天:现实与虚拟交织,元宇宙警察将如何执法?

在元宇宙、Web3高速发展的时代&#xff0c;欧科云链以科技助警&#xff0c;帮助公安等机构实现对新型犯罪的监管与侦破。 ——摘要元宇宙作为应用场景和生活方式的未来&#xff0c;拥有着巨大的发展潜力。伴随5G网络、云计算、区块链等技术迅速发展&#xff0c;虚拟现实、人机交…

java面试题-JVM类加载机制

类加载的生命周期&#xff1f;1. 加载阶段&#xff08;Loading&#xff09;在Java程序中&#xff0c;当需要使用某个类时&#xff0c;JVM会使用类加载器来查找并加载该类文件。类加载器会首先从文件系统或网络中查找相应的 .class 文件&#xff0c;读取类的二进制数据&#xff…

【JDK8新特性之方法引用-案例实操】

一.JDK8新特性之方法引用-案例实操 之前我们学习了Stream流以及Lambda表达式相关的内容&#xff0c;如果想看的同学可以看一下之前的文章&#xff0c;接下来我们就来学习让Lambda表达式更加简洁的方法引用。 二. 什么是方法引用&#xff1f;为什么要使用方法引用&#xff1f; …

Leetcode Solutions - Part 1

回溯: 字符串的排列 回溯&#xff1a;78. 子集 给你一个整数数组 nums &#xff0c;数组中的元素 互不相同 。返回该数组所有可能的子集&#xff08;幂集&#xff09;。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 1&#xff1a; 输入&#xff1a;nums …

【Java】让我们对多态有深入的了解(九)

目录 &#xff08;1&#xff09;接口的基本介绍​编辑 &#xff08;2&#xff09;接口的注意事项和细节 1.接口不能被实例化 2.接口中所有方法是public方法&#xff0c;接口中的抽象方法&#xff0c;可以不用abstract修饰 3.一个普通类实现接口&#xff0c;必须将接口所有…

ARMv8 architecture里的Memory aborts

在AArch64 Virtual Memory System Architecture中&#xff0c;有以下几种机制会导致PE在访问memory失败时产生exceptions。 Debug exception: An exception caused by the debug configuration.Alignment fault: An Alignment fault is generated if the address used for a m…

【YSYY】DSPE-PEG-cRGD,磷脂-聚乙二醇-靶向穿膜肽,靶向功能材料

靶向穿膜肽RGD环肽&#xff0c;磷脂-聚乙二醇-cRGD中的cRGD是五元环肽。 DSPE&#xff08;1,2-二硬脂酰-sn-甘油-3-磷酸乙醇胺&#xff09;是一种饱和的18碳磷脂&#xff0c;常用于脂质体的合成。聚乙二醇&#xff08;PEG&#xff09;偶联DSPE具有亲水性。聚乙二醇能增强溶解性…