• 首页
  • 邻居
  • 关于
  • 归档
  • 搜索
  • 夜间模式
    ©2020-2026  我的学习笔记 Theme by OneBlog

    我的学习笔记博客

    搜索
    标签
    # 随笔 # Java # 教程 # openwrt # Mysql # SQL # 爬虫 # post # Js调优 # MAVEN
  • 首页>
  • 随笔>
  • 正文
  • 如何通过JDBC将SQLServer导入Clickhouse

    2024年04月05日 952 阅读 0 评论 2114 字
    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版本一致

    1. 配置clickhouse-jdbc-bridge
    cd target
    mkdir -p config/datasources #创建config目录及datasources子目录用于存放配置

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

    {
     "$schema": "../datasource.jschema",
      "msjdbc": {
          "driverUrls": [
              "/data/clickhouse-jdbc-bridge/drivers/mysql-connector-j-8.0.33.jar"
           ],
          "driverClassName": "com.mysql.jdbc.Driver",
          "jdbcUrl": "jdbc:mysql://xx.xx/test?compress=false&useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true",
          "username": "root",
          "password": "xxx",
          "connectionTestQuery": ""
       }
    }
    1. 运行clickhouse-jdbc-bridge

    cd target
    java -jar clickhouse-jdbc-bridge-2.0.0.jar

    如果成功运行,会出现已加载的数据源信息,如前面的msjdbc。

    1. 使用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');

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

    <jdbc_bridge>
       <host>XX.XX.XX.XX</host>
       <port>9019</port>
    </jdbc_bridge>
    

    保存之后,重启clickhoust服务

    systemctl restart clickhouse-server
    
    

    超时问题解决:

    本文著作权归作者 [ admin ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。
    取消回复

    发表留言
    回复

    首页邻居关于归档
    Copyright©2020-2026  All Rights Reserved.  Load:0.017 s
    京ICP备18019712号
    Theme by OneBlog V3.6.5
    夜间模式

    开源不易,请尊重作者版权,保留基本的版权信息。