Как импортировать SQLServer в Clickhouse через JDBC

задняя часть NoSQL

1. Разверните clickhouse-jdbc-bridge

clickhouse-jdbc-bridge — это мост, который связывается между Clickhouse и другими данными через jdbc.Он может импортировать данные из других баз данных в clickhouse или напрямую обращаться к другим базам данных в clickhouse.

1.1 Среда развертывания

Убунту 16.04 64 бит

1.2 Перекомпилировать мост

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.

Эта версия JDBC: mssql-jdbc-8.4.1.jre14.jar.

Примечание. Версия jdbc должна совпадать с версией java в среде Ubuntu.

2. Настройте clickhouse-jdbc-bridge

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

Создайте файл конфигурации источника данных в каталоге источников данных,msjdbcИмя файла .json должно совпадать с именем источника данных в конфигурации, и необходимо добавить следующую конфигурацию:

{
  "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 test SELECT * FROM jdbc('msjdbc', 'SELECT * FROM dbo.test');

5. Официальный пример: