clickhouse远程连接数据库hive
从hive抽取数据到clickhouse,如果简单的使用datax写json读写数据,会报错,则需要clickhouse的一个jdbc组件clickhouse-jdbc-bridge,通过bridge服务使用jdbc远程连接到hive数据库查询数据。
一、背景
从hive抽取数据到clickhouse,如果简单的使用datax写json读写数据,会报错,则需要clickhouse的一个jdbc组件clickhouse-jdbc-bridge,通过bridge服务使用jdbc远程连接到hive数据库查询数据。
select *
from jdbc('hivejdbc'
,' SELECT *
FROM test_table')
二、安装
step1. 从https://github.com/ClickHouse/clickhouse-jdbc-bridge下载组件源码zip程序
wget https://github.com/ClickHouse/clickhouse-jdbc-bridge/releases/download/v2.0.2/clickhouse-jdbc-bridge-2.0.2-shaded.jar
step2. 将下载 clickhouse-jdbc-bridge源码包clickhouse-jdbc-bridge-master.zip解压
unzip clickhouse-jdbc-bridge-master.zip
step3. 编译源码,生成jar包
cd clickhouse-jdbc-bridge-master
step4.执行如下命令,完成编译。
编译结束,target目录下会生成两个jar包,使用*shaded结尾程序包。
mvn compile package
step5. 将-shaded.jar结尾的程序包上传到clickhouse所在服务器,并在该文件同目录下新建两个目录:①config/datasources --存放数据源配置文件;②drivers --jdbc驱动存放目录
三、配置
step1. 刚刚已经在clickhouse所在服务器同目录下新建目录config/datasources,在该目录下找到hivejdbc.json文件名或新建,配置该文件。其中文件名会用于查询sql。
/etc/clickhouse-jdbc-bridge/config/datasources/hivejdbc.json
step2. 配置数据库链接IP和账号密码。其中jdbcurl中的IP在不同场景中会有公网或内网的区别。例如可能是服务器配置访问的是内网地址ip,但是在客户端查询访问的IP公网IP。
more /etc/clickhouse-idbc-bridge/contig/datasources/hivejdbc.jsor
json文件内容:
{
"impala": {
"driverUrls": [
"/root/etl_ext_lib/ImpalaJDBC41.jar" --驱动路径
],
"driverClassName": "com.mysql.cj.jdbc.Driver", --驱动名称
"jdbcUrl": "jdbc:impala://localhost:21050/default", --链接地址
"user":"impala", --用户名
"password":"impala" --用户密码
}
}
四、启动服务
java -jar -shaded.jar结尾的程序包
五、查询
远程访问hive库test_table表数据,第一个参数'hivejdbc'对应的是config/datasources目录下hivejdbc.json的文件名。
select *
from jdbc('hivejdbc'
,' SELECT *
FROM test_table')
六、参考案例
更多推荐
所有评论(0)