ck 配置 clickhouse-jdbc-bridge

背景

ck可以用过clickhouse-jdbc-bridge技术来直接访问各数据库,包括oracle,oracle也可以用jdbc,odbc没调研过

规划

jdbc-bridge是面向客户端的技术,也就是说,那个节点有客户端,哪个节点就需要???

安装配置

需要准备的文件

clickhouse-jdbc-bridge

https://github.com/ClickHouse/clickhouse-jdbc-bridge

理论上需要下载源码然后用mavne打包,但提供了打包好的,可以推测用的是maven的shade插件

oracle的驱动

在官网https://mvnrepository.com下载Oracle对应的驱动包ojdbc8-12.2.0.1.jar放置到/data/clickhouse-jdbc-bridge/drivers目录下。

ojdbc8-12.2.0.1.jar 可用于11g

创建目录

注意,jdbc-bridge对目录有要求,相对位置是固定的,上级目录随意。

json 复制代码
|--clickhouse-jdbc-bridge-2.0.7-shaded.jar
        |--noput.out
        |--drivers
            |--ojdbc8-12.2.0.1.jar
        |--config
            |-- datasources
                |-- oracle.json

sudo mkdir -p /app/clickhouse/clickhouse-jdbc-bridge

sudo chown -R bigdata:bigdata /app 注意,这里权限可以不用clickhouse用户,别的用户也可以

sudo chmod 755 -R /app

cd /app/clickhouse/clickhouse-jdbc-bridge

mkdir -p config/datasources

mkdir drivers

最终的目录结构

json 复制代码
|--app/clickhouse
    |--clickhouse-jdbc-bridge
        |--clickhouse-jdbc-bridge-2.0.7-shaded.jar
        |--noput.out
        |--drivers
            |--ojdbc8-12.2.0.1.jar
        |--config
            |-- datasources
                |-- oracle.json

配置文件

cd /app/clickhouse/clickhouse-jdbc-bridge/config/datasources
注意:

  • oracle.json和里面的根节点oracle名字必须一样
  • jdbcUrl中,注意gid和库,如果是库,要用/,如果是gid,要用:,弄混了会报错
  • connectionTestQuery一定要为空串,不然有可能出问题,oracle好像不支持这么测试
json 复制代码
vim oracle.json
{
  "oracle": {
      "driverUrls": [
          "/app/clickhouse/clickhouse-jdbc-bridge/drivers/ojdbc8-12.2.0.1.jar"
       ],
      "driverClassName": "oracle.jdbc.driver.OracleDriver",
      "jdbcUrl": "jdbc:oracle:thin:@10.135.0.70:1521/ods",
      "username": "账号",
      "password": "密码",
      "connectionTestQuery": ""
   }
}

nohup java -jar clickhouse-jdbc-bridge-2.1.0-shaded.jar &

tail -f nohup.out

ck的配置

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

xml 复制代码
<jdbc_bridge>
   <host>localhost</host>
   <port>9019</port>
</jdbc_bridge>

使用

启动

nohup java -jar clickhouse-jdbc-bridge-2.1.0-shaded.jar &

tail -f nohup.out

重启ck

systemctl restart clickhouse-server

systemctl restart clickhouse-server2

验证

sql 复制代码
select * from jdbc('','show datasource') --查看外部数据源
select * from jdbc('oracle','SELECT (TRUNC (SYSDATE+1) - SYSDATE) * 24 * 60 * 60 num_of_sec_left FROM DUAL') --运行一个测试sql
相关推荐
言之。4 天前
简单介绍一下Clickhouse及其引擎
clickhouse
西京刀客4 天前
clickhouse的UInt64类型(countIf() 函数返回)
clickhouse·uint64·countif
Super_King_5 天前
ClickHouse 中 ORDER BY 场景下 arrayExists 与 hasAny 性能深入研究:布隆过滤器索引的影响分析
clickhouse
Super_King_5 天前
深入研究:ClickHouse中arrayExists与hasAny在ORDER BY场景下的性能差异
clickhouse
-KamMinG6 天前
阿里云ClickHouse数据保护秘籍:本地备份与恢复详解
clickhouse·阿里云·云计算
问道飞鱼6 天前
【大数据相关】ClickHouse命令行与SQL语法详解
大数据·sql·clickhouse
MMMMMMMMMMemory11 天前
clickhouse迁移工具clickhouse-copier
clickhouse
securitor11 天前
【clickhouse】设置密码
clickhouse
天道有情战天下13 天前
ClickHouse使用Docker部署
clickhouse·docker·容器