oracle11数据使用jdbc导入click house

文章目录

        • 背景
        • 一 方案选取
        • 二 clickhouse-jdbc-bridge的下载和安装
        • 三 数据表的创建和导入

背景

需求要把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

oracle11数据使用jdbc导入click house_第1张图片

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

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

    {
      "oracle11": {
        "driverClassName":"oracle.jdbc.OracleDriver",
        "jdbcUrl": "jdbc:oracle:thin:/@//:/",
        "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:/@//:1521/','SELECT * FROM TEST');

你可能感兴趣的:(Click,house,oracle,jdbc,大数据)