配置ClickHouse数据源
操作场景
ClickHouse数据源中同一个Schema(或Database)下不能存在名字内容相同但大小写格式不同的Table,例如:cktable(小写)、CKTABLE(大写)和CKtable(大小写混合),该内容的Table只能有一个,否则HetuEngine无法使用该Schema(或Database)下的表。
前提条件
参考创建HetuEngine用户创建HetuEngine管理员用户。
操作步骤
- 使用HetuEngine管理员用户登录FusionInsight Manager,选择“集群 > 服务 > HetuEngine”,进入HetuEngine服务页面。
- 在“概览”页签下的“基本信息”区域,单击“HSConsole WebUI”后的链接,进入HSConsole界面。
- 选择“数据源”,单击“添加数据源”,在“添加数据源”页面填写参数。
- 配置“基本配置”,填写数据源名称,选择数据源类型“JDBC > ClickHouse”。
- 配置“ClickHouse配置”,参数配置请参考表1。
表1 ClickHouse配置 参数
描述
取值样例
驱动
默认为“clickhouse”。
clickhouse
JDBC URL
ClickHouse数据源的JDBC URL地址。
- ClickHouse数据源使用IPV4,则格式为:jdbc:clickhouse://<host>:<port>;
- ClickHouse数据源使用IPV6,则格式为:jdbc:clickhouse://[<host>]:<port>
其中:- <host>获取方法:登录ClickHouse数据源所在集群的Manager页面,选择“集群 > 服务 > ClickHouse > 实例”,查看ClickHouseBalancer所在的“业务IP”。随机选取一个IP地址即可,目前仅支持填写一个IP地址。
- <port>获取方法:登录FusionInsight Manager,选择“集群 > 服务 > ClickHouse > 逻辑集群”,查看对应逻辑集群的HTTP Balancer端口号。
jdbc:clickhouse://10.162.156.243:21426 或者 jdbc:clickhouse://10.162.156.243:21425
用户名
连接ClickHouse数据源的用户名。
根据连接数据源的用户名修改。
密码
连接ClickHouse数据源的用户密码。
根据连接数据源的用户密码修改。
Schema/Table大小写敏感
支持数据源的Schema/Table名称大小写格式敏感。
HetuEngine支持数据源的Schema/Table名称大小写格式敏感。
- 否:当数据源同一个Schema下有多个Table名称,如cktable(小写)、CKTABLE(大写)和CKtable(大小写混合),HetuEngine只能使用cktable(小写)。
- 是:要求数据源同一个Schema下只能有一个Table名称,如cktable(小写)或者CKTABLE(大写)或者CKtable(大小写混合),否则HetuEngine无法使用该Schema下的所有表。
-
- (可选)自定义配置。
单击“增加”可以增加自定义配置参数。配置ClickHouse数据源自定义参数,参考表2。
表2 ClickHouse数据源自定义配置参数 参数
描述
取值样例
use-connection-pool
是否使用JDBC连接池
true
jdbc.connection.pool.maxTotal
JDBC连接池中最大连接数
8
jdbc.connection.pool.maxIdle
JDBC连接池中最大空闲连接数
8
jdbc.connection.pool.minIdle
JDBC连接池中最小空闲连接数
0
jdbc.connection.pool.testOnBorrow
从JDBC连接池中获取连接使用时是否对连接的有效性做检验
false
clickhouse.map-string-as-varchar
是否将ClickHouse数据源String和FixedString类型处理成Varchar类型
默认值:true
true
clickhouse.socket-timeout
连接ClickHouse数据源超时时长
单位:毫秒
默认值:120000
120000
case-insensitive-name-matching.cache-ttl
数据源的大小写敏感的Schema/Table名称缓存超时时长
单位:分钟
默认值:1
1
单击“删除”可以删除已增加的自定义配置参数。
- 单击“确定”。
- 登录集群客户端所在节点,执行以下命令,切换到客户端安装目录并认证用户。
cd /opt/client
source bigdata_env
kinit HetuEngine组件操作用户 (普通模式集群跳过)
- 执行以下命令,登录数据源的catalog。
hetu-cli --catalog 数据源名称 --schema 数据库名
例如执行以下命令:
hetu-cli --catalog clickhouse_1 --schema default
- 执行以下命令,可正常查看数据库表信息或不报错即表示连接成功。
show tables;
数据类型映射
ClickHouse类型 |
HetuEngine类型 |
---|---|
BOOLEAN |
BOOLEAN |
UInt8 |
SMALLINT |
UInt16 |
INTEGER |
UInt32 |
BIGINT |
UInt64 |
DECIMAL(20, 0) |
Int8 |
TINYINT |
Int16 |
SMALLINT |
Int32 |
INTEGER |
Int64 |
BIGINT |
Float32 |
REAL |
Float64 |
DOUBLE |
Decimal(P, S) |
DECIMAL(P, S) |
Decimal32(S) |
DECIMAL(P, S) |
Decimal64(S) |
DECIMAL(P, S) |
Decimal128(S) |
DECIMAL(P, S) |
IPv4 |
VARCHAR |
IPv6 |
VARCHAR |
UUID |
VARCHAR |
Enum8 |
VARCHAR |
Enum16 |
VARCHAR |
String |
VARCHAR / VARBINARY |
Fixedstring(N) |
VARCHAR / VARBINARY |
Date |
DATE |
DateTime |
TIMESTAMP |
约束
- HetuEngine支持对接ClickHouse操作的SQL语法:SHOW CATALOGS/SCHEMAS/TABLES/COLUMNS、DESCRIBE、USE、SELECT 表/视图。
- HetuEngine支持对接ClickHouse操作的表和视图:
名称
支持对接ClickHouse操作的表、视图
HetuEngine支持对ClickHouse操作的表
本地表(MergeTree)
复制表(ReplicatedReplacingMergeTree)
分布式表(Distributed)
HetuEngine支持对ClickHouse操作的视图
普通视图(Normal)
物化视图(Materialized)