当前位置: 代码迷 >> 综合 >> ClickHouse JDBC Bridge 的安装及连接sqlserver
  详细解决方案

ClickHouse JDBC Bridge 的安装及连接sqlserver

热度:34   发布时间:2023-12-27 20:31:54.0

 

用于ClickHouse的JDBC链接桥。 它充当无状态代理,将查询从ClickHouse传递到外部数据源。 使用此扩展,您可以跨多个数据源实时在ClickHouse上运行分布式查询,从而以某种方式简化了用于数据仓库,监视和完整性检查等的数据管道的构建过程。

103492828-a06d1200-4e68-11eb-9287-ef830f575d3e.png (2331×1313)

Debain/ubuntu下安装方法如下:

其它类型的linux安装方法见官方github:https://codechina.csdn.net/mirrors/ClickHouse/clickhouse-jdbc-bridge

apt update && apt install -y procps wget
wget https://github.com/ClickHouse/clickhouse-jdbc-bridge/releases/download/v2.0.1/clickhouse-jdbc-bridge_2.0.1-1_all.deb
apt install --no-install-recommends -f ./clickhouse-jdbc-bridge_2.0.1-1_all.deb
//启动服务
clickhouse-jdbc-bridge

 

 ClickHouse JDBC Bridge安装完成之后,即可使用它连接其他的数据库,如MySQL,SQL server等

以SQL server举例:

  • 在/etc/clickhouse-jdbc-bridge目录下新建drivers文件夹,将SQL server驱动jar包放入其中

        如果找不到jar包的,可以点https://download.csdn.net/download/qq_38830964/16691377下载

在/etc/clickhouse-jdbc-bridge/config/datasource目录下,编辑datasource.json.example文件(这一步好像可有可无,如果你是clickhouse-jdbc-bridge-2.0以上,好像不需要,直接启动服务即可)

配置参考如下
{"$schema": "../datasource.jschema","ch-server": {"aliases": ["self"],"driverUrls": ["https://repo1.maven.org/maven2/ru/yandex/clickhouse/clickhouse-jdbc/0.2.5/clickhouse-jdbc-0.2.5-shaded.jar"],"driverClassName": "ru.yandex.clickhouse.ClickHouseDriver","jdbcUrl": "jdbc:clickhouse://ch-server:8123/system?compress=false","username": "default","password": "","maximumPoolSize": 5},"msjdbc": {"driverUrls": ["../../drivers/mssql-jdbc-9.2.1.jre8.jar"],"driverClassName": "com.microsoft.sqlserver.jdbc.SQLServerDriver","jdbcUrl": "jdbc:sqlserver://localhost:1433;DatabaseName=data","username": "sa","password": "root"}
}

  

  • 如果在连接过程中,出现连接错误的情况,请打开sqlserver配置管理器,查看

  • 开启sqlserver的tcp/ip连接

    在sqlserver mangement网络服务中,开启tcp/ip的端口,主要是IP0,IP1,ipall

使用jdbc表引擎创建clickhouse数据表

使用clickhouse-jdbc-bridge ,jdbc表引擎连接sqlserver('DSN', database or schema, table)
CREATE TABLE jdbc
(lx String,number Int64,kcsl Int64,kcjes Int64,djsj DateTime(2)
)
ENGINE = JDBC('jdbc:sqlserver://localhost:1433;DatabaseName=data;user=sa;password=root', '', 'test')

 

  相关解决方案