参考
https://github.com/ClickHouse/clickhouse-jdbc-bridge
https://github.com/ClickHouse/clickhouse-jdbc-bridge/blob/master/docker/README.md
clickhouse官方提供了一种方式,可以实现clickhouse与oracle之间传输数据,不仅仅是oracle,而且是一类支持jdbc的数据库,这种方式就是JDBC bridge for ClickHouse
它可以作为一个无状态的代理将查询传递到外部数据源。由于这个扩展功能,你可以在clickhouse上运行分布式查询,这查询能够做到实时跨多数据源。
安装
如何部署
直接在部署clickhose的linux服务器上,下载安装释出的debian/rpm包。Debian/Ubuntu按照如下操作即可。
apt update && apt install -y procps wget
wget
https://github.com/ClickHouse/clickhouse-jdbc-bridge/releases/download/v2.1.0/clickhouse-jdbc-bridge_2.1.0-1_all.deb
说明:第一次下载失败后,再次下载,文件名多了后缀.1,稍后删除之前下载不完整的文件,并将这个完整文件的文件名后缀.1剔除。
第一次下载失败如下所示,重新下载即可,外网速度问题
apt install --no-install-recommends -f ./clickhouse-jdbc-bridge_2.1.0-1_all.deb
clickhouse-jdbc-bridge
说明:第一次下载失败,多次下载,安装时报错
如上截图所示,删除第一个下载失败的(rm),并调整名称后(mv),再次执行。
启动 clickhouse-jdbc-bridge
启动时报错,提示没有日志文件,参考链接
https://github.com/ClickHouse/clickhouse-jdbc-bridge/tree/master中configuration中有关于日志的配置
点击查看,按照下图所示配置文件中的路径,以root用户登录,新建目录。
/var/log/clickhouse-jdbc-bridge/console.log
再启动时不再报无法加载日志处理器的错误。
配置
目录结构
上传驱动文件
切换到clickhouse-jdbc-bridge主目录,本例中为
/etc/clickhouse-jdbc-bridge
新建目录 mkdir drivers
以root用户登录,上传oracle驱动
重启 clickhouse-jdbc-bridge,在clickhouse client输入如下形式的内容,回车。
select * from jdbc('jdbc:oracle:thin:name/pass@ip:port:sid', 'select 1 from dual')
或者如下
select * from jdbc('jdbc:oracle:thin:name/pass@ip:port/sid', 'select 1 from dual')
不建议直接暴露数据库的连接信息,可以将连接信息配置在config中的json文件中,然后再引用配置信息。
配置连接信息
切换到config目录
将数据库的连接配置信息可以放在config/datasources目录的json文件中。
复制示例文件,然后调整
cp datasource.json.example ora.json
驱动地址:/etc/clickhouse-jdbc-bridge/drivers/ojdbc6.jar
jdbcUrl:jdbc:oracle:thin:@port:port:sid
调整完之后保存,clickhouse-jdbc-bridge会自动读取json配置内容。如果没读取到,重启下clickhouse-jdbc-bridge,出现如下图所示,红框的内容,表示读取成功。
验证效果