更新时间:2022-12-14 GMT+08:00

配置ClickHouse数据源

操作场景

  • HetuEngine目前支持对接集群为MRS 3.1.1及以上版本的ClickHouse数据源。
  • 安全模式的HetuEngine支持对接安全模式集群为MRS 3.1.1及以上版本的ClickHouse数据源。
  • 普通模式的HetuEngine支持对接普通模式集群为MRS 3.1.1及以上版本的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. 选择“数据源”。
  4. 单击“添加数据源”,在“添加数据源”页面填写参数。

    1. 配置“基本配置”,参数配置请参考表1
      表1 基本配置

      参数

      描述

      取值样例

      数据源名称

      对接的数据源的名称。

      只能包含字母、数字、下划线(_),仅字母开头。

      clickhouse_1

      数据源类型

      对接的数据源的类型。选择“JDBC > ClickHouse”。

      ClickHouse

      描述

      数据源的描述信息。

      只能包含汉字、英文字母、数字、中英文逗号、中英文句号、下划线(_)、空格和换行符。

      -

    2. 配置“ClickHouse配置”,参数配置请参考表2
      表2 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”。
      • <port>获取方法:登录ClickHouse数据源所在集群的Manager页面,选择“集群 > 服务 > ClickHouse > 配置 > 全部配置”,如果ClickHouse数据源是安全模式则查看ClickHouseBalancer实例HTTPS端口,即“lb_https_port”参数的“值”;如果ClickHouse数据源是普通模式则查看ClickHouseBalancer实例HTTP端口,即“lb_http_port”参数的“值”。

      jdbc:clickhouse://10.162.156.243:21426 或者 jdbc:clickhouse://10.162.156.243:21425 或者 jdbc:clickhouse://[fec0::d916:8:5:164:200]:21426

      用户名

      连接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数据源自定义参数,参考表3
      表3 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

      jdbc.pushdown-enabled

      下推功能是否启用

      默认值:true

      true

      jdbc.pushdown-module

      下推类型

      • DEFAULT:不下推任何算子
      • BASE_PUSHDOWN:仅下推Filter、Aggregation、Limit、TopN、Projection等算子
      • FULL_PUSHDOWN:下推所有可支持的算子

      -

      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. 单击“确定”。

使用指导

  • HetuEngine支持的ClickHouse数据类型,如表4
    表4 HetuEngine支持的ClickHouse数据类型

    名称

    ClickHouse数据类型

    HetuEngine支持的ClickHouse数据类型

    UInt8

    Decimal128(S)

    UInt16

    Boolean

    UInt32

    String

    UInt64

    Fixedstring(N)

    Int8

    UUID

    Int16

    Date

    Int32

    DateTime([timezone])

    Int64

    Enum

    Float32

    LowCardinality(data_type)

    Float64

    Nullable(typename)

    Decimal(P, S)

    IPv4

    Decimal32(S)

    IPv6

    Decimal64(S)

    -

  • HetuEngine支持对接ClickHouse操作的表和视图,如表5
    表5 HetuEngine支持对接ClickHouse操作的表、视图

    名称

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

    HetuEngine支持对ClickHouse操作的表

    本地表(MergeTree)

    复制表(ReplicatedReplacingMergeTree)

    分布式表(Distributed)

    HetuEngine支持对ClickHouse操作的视图

    普通视图(Normal)

    物化视图(Materialized)