oracle11数据使用jdbc导入click house

背景

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

一 方案选取

使用 clickhouse-jdbc-bridge ,使用click house的JDBC驱动 来查找数据

CREATE TABLE [IF NOT EXISTS] [db.]table_name
(
    columns list...
)
ENGINE = JDBC(datasource_uri, external_database, external_table)
二 clickhouse-jdbc-bridge的下载和安装
  1. 下载 https://github.com/ClickHouse/clickhouse-jdbc-bridge/releases

在这里插入图片描述

  1. 把jar包放到服务器的路径中, 并在相对路径下创建下面的文件夹
    在这里插入图片描述

  2. vim config/datasources/oracle.json 在这个json里面配置对应的连接

    {
      "oracle11": {
        "driverClassName":"oracle.jdbc.OracleDriver",
        "jdbcUrl": "jdbc:oracle:thin:<username>/<password>@//<host>:<ip>/<server>",
        "ionFailTimeout": 0,
        "minimumIdle": 0,
        "maximumPoolSize": 10
      }
    }
    
  3. oracle驱动的下载和配置

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

    文件的位置: drivers目录下 ojdbc8-12.2.0.1.jar

  4. bridge的启动和日志报错的排查
    后台运行,日志保存到logs目录下

    nohup java -Duser.timezone=CN -jar clickhouse-jdbc-bridge-2.0.3-shaded.jar >> ./logs/out.log 2>&1 &
    

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

    Caused by: java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1
    ORA-01882: timezone region not found
    
三 数据表的创建和导入

查看oracle中的数据结构 进行字段的转换在click house中创建对应的表

 CREATE TABLE TEST
(
    `_id_` String,
    `NodeName` Nullable(String),
    ......
    `_ExportedDate_` Date
) 
ENGINE = MergeTree()
ORDER BY _id_
SETTINGS index_granularity = 8192;

数据导入的sql,click house

insert into TEST select * from jdbc('jdbc:oracle:thin:<username>/<password>@//<host>:1521/<servers>','SELECT * FROM TEST');
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值