天天看點

ClickHouse JDBC Bridge 的安裝及連接配接sqlserver

用于ClickHouse的JDBC連結橋。 它充當無狀态代理,将查詢從ClickHouse傳遞到外部資料源。 使用此擴充,您可以跨多個資料源實時在ClickHouse上運作分布式查詢,進而以某種方式簡化了用于資料倉庫,監視和完整性檢查等的資料管道的建構過程。

ClickHouse JDBC Bridge 的安裝及連接配接sqlserver

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')