ITPub博客

首页 > 数据库 > > 如何通过JDBC将SQLServer导入Clickhouse

如何通过JDBC将SQLServer导入Clickhouse

作者:u_9ff4c058a0e0 时间:2022-05-31 11:33:15 0 删除 编辑

1. 部署clickhouse-jdbc-bridge

clickhouse-jdbc-bridge是通过jdbc将Clickhouse与其他数据沟通的桥梁,可将其他数据库数据导入clickhouse中,也可以直接在clickhouse中访问其他数据库。

1.1 部署环境

Ubuntu 16.04 64位

1.2 重新编译bridge

git clone https://github.com/ClickHouse/clickhouse-jdbc-bridge.git 
cd clickhouse-jdbc-bridge   
mvn -Drevision=2.0.0 package
复制代码

1.3 下载Microsoft JDBC驱动

把下载的驱动放到clickhouse-jdbc-bridge目录下的drivers子目录

本次JDBC版本为:mssql-jdbc-8.4.1.jre14.jar

注意:jdbc版本需与Ubuntu环境中的java版本一致

2. 配置clickhouse-jdbc-bridge

cd target
mkdir -p config/datasources #创建config目录及datasources子目录用于存放配置
复制代码

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

{
  "msjdbc": {
    "driverUrls": [
      "/clickhouse-jdbc-bridge/drivers/mssql-jdbc-8.4.1.jre14.jar"
    ],
    "driverClassName": "com.microsoft.sqlserver.jdbc.SQLServerDriver",
    "jdbcUrl": "jdbc:sqlserver://192.168.1.196:1433;databaseName=CERSv5;",
    "username": "xxx",
    "password": "xxx"
  }
}
复制代码

3. 运行clickhouse-jdbc-bridge

cd target
java -jar clickhouse-jdbc-bridge-2.0.0.jar
#如果成功运行,会出现已加载的数据源信息,如前面的msjdbc。
复制代码

4. 使用clickhouse-jdbc-bridge迁移数据

4.1 先用DBeaver或clickhouse-client创建表  

CREATE TABLE test(id String, operateTime DateTime) ENGINE = MergeTree
PARTITION BY toYYYYMM(operateTime)
ORDER BY id
SETTINGS index_granularity = 8192;
复制代码

4.2 进入clickhouse-client 执行insert into语句

INSERT INTO test SELECT * FROM jdbc('msjdbc', 'SELECT * FROM dbo.test');
复制代码

5.官方例子:


作者:slion
链接:https://juejin.cn/post/6910019468001280013

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69999831/viewspace-3132525/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: MariaDB主从同步
请登录后发表评论 登录
全部评论

注册时间:2022-02-11

  • 博文量
    1828
  • 访问量
    20586