更新时间:2024-11-29 GMT+08:00

配置ClickHouse数据源

操作场景

ClickHouse数据源中同一个Schema(或Database)下不能存在名字内容相同但大小写格式不同的Table,例如:cktable(小写)、CKTABLE(大写)和CKtable(大小写混合),该内容的Table只能有一个,否则HetuEngine无法使用该Schema(或Database)下的表。

前提条件

参考创建HetuEngine用户创建HetuEngine管理员用户。

操作步骤

  1. 使用HetuEngine管理员用户登录FusionInsight Manager,选择“集群 > 服务 > HetuEngine”,进入HetuEngine服务页面。
  2. 在“概览”页签下的“基本信息”区域,单击“HSConsole WebUI”后的链接,进入HSConsole界面。
  3. 选择“数据源”,单击“添加数据源”,在“添加数据源”页面填写参数。

    1. 配置“基本配置”,填写数据源名称,选择数据源类型“JDBC > ClickHouse”。
    2. 配置“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下的所有表。

      -

    3. (可选)自定义配置。
      单击“增加”可以增加自定义配置参数。配置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

      单击“删除”可以删除已增加的自定义配置参数。

    1. 单击“确定”。

  4. 登录集群客户端所在节点,执行以下命令,切换到客户端安装目录并认证用户。

    cd /opt/client

    source bigdata_env

    kinit HetuEngine组件操作用户 (普通模式集群跳过)

  5. 执行以下命令,登录数据源的catalog。

    hetu-cli --catalog 数据源名称 --schema 数据库名

    例如执行以下命令:

    hetu-cli --catalog clickhouse_1 --schema default

  6. 执行以下命令,可正常查看数据库表信息或不报错即表示连接成功。

    show tables;

数据类型映射

ClickHouse数据类型到HetuEngine数据类型映射

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

性能优化

  • 查询下推

    支持使用查询下推功能,提高查询速度。

  • Scalar UDF下推

    Scalar UDF下推功能默认打开。使用该功能前需根据需求在HetuEngine中创建映射函数。

约束

  • HetuEngine支持对接ClickHouse操作的SQL语法:SHOW CATALOGS/SCHEMAS/TABLES/COLUMNS、DESCRIBE、USE、SELECT 表/视图。
  • HetuEngine支持对接ClickHouse操作的表和视图:

    名称

    支持对接ClickHouse操作的表、视图

    HetuEngine支持对ClickHouse操作的表

    本地表(MergeTree)

    复制表(ReplicatedReplacingMergeTree)

    分布式表(Distributed)

    HetuEngine支持对ClickHouse操作的视图

    普通视图(Normal)

    物化视图(Materialized)