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

添加GBase数据源

本章节适用于MRS 3.5.0及之后的版本。

HetuEngine支持配置GBase数据源实现对GBase数据源的接入与查询功能。本章节指导用户在集群的HSConsole界面添加GBase类型的JDBC数据源。

前提条件

  • 数据源与HetuEngine集群节点网络互通。
  • HetuEngine所在集群的所有节点的“/etc/hosts”文件中,添加待对接数据源所在集群的主机名称和对应的IP映射。
  • 集群已启用Kerberos认证(安全模式)创建HetuEngine管理员用户,集群未启用Kerberos认证(普通模式)创建HetuEngine业务用户,并为其赋予HDFS管理员权限,即创建用户时需同时加入“hadoop”和“hadoopmanager”用户组,创建用户可参考创建HetuEngine权限角色
  • 已创建HetuEngine计算实例,可参考创建HetuEngine计算实例
  • 已获取GBase数据库所在的IP地址,端口号,用户名及密码。

HetuEngine对接GBase数据源约束

  • HetuEngine支持对接GBase操作的SQL语法:SHOW CATALOGS/SCHEMAS/TABLES/COLUMNS、DESCRIBE、USE、SELECT表/视图。
  • HetuEngine支持的GBase数据源的Schema和Table名称不区分大小写。

配置GBase数据源步骤

安装集群客户端

  1. 安装包含HetuEngine服务的集群客户端,例如安装目录为“/opt/hadoopclient”。

准备GBase驱动

  1. 从GBase官网获取GBase驱动文件,格式为“xxx.jar”,需为“gbase-connector-java-9.5.0.1-build1-bin.jar”及以后版本。
  2. 上传GBase驱动文件至HetuEngine所在集群。

    可通过如下两种方式:

    • 通过Manager界面上传至HDFS:
      1. 使用HetuEngine管理员用户登录FusionInsight Manager,选择“集群 > 服务 > HDFS”,进入HDFS服务页面。
      2. 在“概览”页签下的“基本信息”区域,单击“NameNode Web UI”后的链接,进入NameNode Web UI界面。
      3. 选择“Utilities > Browse the file system”,单击,创建“/user/hetuserver/fiber/extra_file/driver/gbase”目录。
      4. 进入“/user/hetuserver/fiber/extra_file/driver/gbase”目录,单击上传2获取的GBase驱动文件。
      5. 单击驱动文件所在行的“Permission”列的值,勾选“User”列的“Read”和“Write”,“Group”列的“Read”和“Other”列的“Read”,单击“Set”。
    • 通过使用HDFS命令直接上传:
      1. 将获取的GBase驱动文件上传至HDFS服务客户端所在节点任意目录。
      2. 登录HDFS服务客户端所在节点,切换到客户端安装目录,如“/opt/hadoopclient”。

        cd /opt/hadoopclient

      3. 执行以下命令配置环境变量。

        source bigdata_env

      4. 如果集群为安全模式,执行以下命令进行用户认证。普通模式集群无需执行用户认证。

        kinit HetuEngine管理员用户

        根据回显提示输入密码。

      5. 执行如下命令创建目录“/user/hetuserver/fiber/extra_file/driver/gbase”,并上传2获取的GBase驱动,然后修改对应的权限。

        hdfs dfs -mkdir -p /user/hetuserver/fiber/extra_file/driver/gbase

        hdfs dfs -put GBase驱动文件路径 /user/hetuserver/fiber/extra_file/driver/gbase

        hdfs dfs -chmod -R 644 /user/hetuserver/fiber/extra_file/driver/gbase

配置GBase数据源

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

    1. 配置“基本配置”,填写数据源名称,选择数据源类型“JDBC > GBase”。
    2. 配置“GBase配置”,参数配置请参考表1
      表1 GBase配置

      参数

      描述

      取值样例

      驱动名称

      选择2中已提前上传的待使用的GBase驱动,格式为xxx.jar。

      gbase-connector-java-9.5.0.1-build1-bin.jar

      JDBC URL

      连接GBase的JDBC URL地址。

      格式:jdbc:gbase://gbase数据库所在的IP地址:端口号

      端口号默认为5258。

      jdbc:gbase://192.168.1.1:5258

      用户名

      连接GBase数据源的GBase用户名。

      -

      密码

      连接GBase数据源的GBase用户密码。

      -

    3. (可选)自定义配置。

      单击“增加”可以增加自定义配置参数。配置GBase数据源自定义参数,参考表2

      表2 GBase数据源自定义配置参数

      参数

      描述

      取值样例

      GBase.auto-reconnect

      是否自动重连。

      • true(默认值):开启自动重连。
      • false:关闭自动重连。

      true

      GBase.max-reconnects

      最大重连次数,默认值:3。

      3

      GBase.jdbc.use-information-schema

      驱动程序是否应该使用INFORMATION_SCHEMA来派生“DatabaseMetaData”使用的信息。

      true

      use-connection-pool

      是否使用JDBC连接池,默认值:true。

      true

      jdbc.connection.pool.maxTotal

      JDBC连接池中最大连接数,默认值:8。

      8

      jdbc.connection.pool.maxIdle

      JDBC连接池中最大空闲连接数,默认值:8。

      8

      jdbc.connection.pool.minIdle

      JDBC连接池中最小空闲连接数,默认值:0。

      0

      unsupported-type-handling

      当连接器不支持此数据类型时,是否将其转换为VARCHAR,从而避免失败。

      • CONVERT_TO_VARCHAR:将不支持的类型转为VARCHAR类型,并且只支持对它们的读操作。
      • IGNORE(默认值):不支持的类型将不在查询结果中显示。

      IGNORE

      join-pushdown.enabled

      是否启用Join下推。

      • true(默认值):开启Join下推。
      • false:关闭Join下推。

      true

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

    4. 单击“确定”。

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

    cd /opt/hadoopclient

    source bigdata_env

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

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

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

    例如执行以下命令:

    hetu-cli --catalog gbase_1 --schema gbasedb

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

    show tables;

GBase与HetuEngine数据类型映射

表3 GBase与HetuEngine数据类型映射

GBase类型

HetuEngine类型

TINYINT

TINYINT

SMALLINT

SMALLINT

INTEGER

INTEGER

BIGINT

BIGINT

DOUBLE

DOUBLE

FLOAT

REAL

DECIMAL(p, s)

DECIMAL(p, s)

CHAR(n)

CHAR(n)

VARCHAR(n)

VARCHAR(n)

TEXT

VARCHAR(65535)

BLOB, LONGBLOB

VARBINARY

DATE

DATE

TIME

TIME

DATETIME

TIMESTAMP(6)

TIMESTAMP(n)

TIMESTAMP(n)