更新时间:2024-03-28 GMT+08:00

使用Linux gsql客户端连接集群

用户在创建好数据仓库集群,开始使用集群数据库之前,需要使用数据库SQL客户端连接到数据库。GaussDB(DWS)提供了与集群版本配套的Linux gsql命令行客户端工具,您可以使用Linux gsql客户端通过集群的公网地址或者内网地址访问集群。

它的运行环境是Linux操作系统,在使用Linux gsql客户端远程连接GaussDB(DWS)集群之前,需要准备一个Linux主机用于安装和运行Linux gsql客户端。如果通过公网地址访问集群,也可以将Linux gsql客户端安装在用户自己的Linux主机上,但是该Linux主机必须具有公网地址。若GaussDB(DWS)集群没有配置公网IP,为方便起见,推荐您创建一台Linux弹性云服务器(简称ECS),详情可参见(可选)准备ECS作为gsql客户端主机

(可选)准备ECS作为gsql客户端主机

购买弹性云服务器的操作步骤,请参见《弹性云服务器快速入门》中的购买弹性云服务器章节。

创建的弹性云服务器需要满足如下要求:

  • 弹性云服务器需要与GaussDB(DWS)集群具有相同的区域、可用区。
  • 如果使用GaussDB(DWS)提供的gsql命令行客户端连接GaussDB(DWS)集群,弹性云服务器的镜像必须满足如下要求:

    镜像的操作系统必须是gsql客户端所支持的下列Linux操作系统:

    • “Redhat x86_64”客户端工具支持在以下系统中使用:
      • RHEL 6.4~7.6
      • CentOS 6.4~7.4
      • EulerOS 2.3
    • “SUSE x86_64”客户端工具支持在以下系统中使用:
      • SLES 11.1~11.4
      • SLES 12.0~12.3
    • “Euler Kunpeng_64”客户端工具支持在以下系统中使用:
      • EulerOS 2.8
    • “Stream Euler X86_64”客户端工具支持在以下系统中使用:

      EulerOS 2.2

    • “Stream Euler Kunpeng_64”客户端工具支持在以下系统中使用:
      • EulerOS 2.8
  • 如果客户端通过内网地址访问集群,请确保创建的弹性云服务器与GaussDB(DWS)集群在同一虚拟私有云里。

    虚拟私有云相关操作请参见《虚拟私有云用户指南》中虚拟私有云和子网章节。

  • 如果客户端通过公网地址访问集群,请确保创建的弹性云服务器和GaussDB(DWS)集群都要有弹性IP。

    购买弹性云服务器时,参数“弹性公网IP”需选择“现在购买”或“使用已有”。

  • 弹性云服务器对应的安全组规则需要确保能与GaussDB(DWS)集群提供服务的端口网络互通。

    安全组相关操作请参见《虚拟私有云用户指南》中安全组章节。

    请确认弹性云服务器的安全组中存在符合如下要求的规则,如果不存在,请在弹性云服务器的安全组中添加相应的规则:

    • 方向:出方向。
    • 协议:必须包含TCP。例如,TCP、全部。
    • 端口:需要包含GaussDB(DWS)集群提供服务的数据库端口,例如,设置为“1-65535”或者具体的GaussDB(DWS)数据库端口。
    • 目的地址:设置的IP地址需要包含所要连接的GaussDB(DWS)集群的连接地址。其中0.0.0.0/0表示任意地址。
      图1 出方向的规则
  • GaussDB(DWS)集群的安全组规则需要确保GaussDB(DWS)能接收来自客户端的网络访问。
    请确认GaussDB(DWS)集群的安全组中存在符合如下要求的规则,如果不存在,请在GaussDB(DWS)集群的安全组中添加相应的规则。
    • 方向:入方向
    • 协议:必须包含TCP,例如TCP、全部。
    • 端口:设置为GaussDB(DWS)集群提供服务的数据库端口,例如“8000”。
    • 源地址:设置的IP地址需要包含GaussDB(DWS)客户端主机的IP地址,例如“192.168.0.10/32”。
      图2 入方向的规则

下载Linux gsql客户端并连接集群

  1. 请参见下载客户端下载Linux gsql客户端,并使用SSH文件传输工具(例如WinSCP工具),将客户端工具上传到一个待安装Linux gsql的Linux主机上。

    推荐下载使用与集群版本匹配的gsql工具,即8.1.0及以上版本集群使用8.1.x版本gsql、8.2.0及以上版本集群使用8.2.x版。若下载8.2.x版本gsql工具,需将dws_client_8.1.x_redhat_x64.zip替换为dws_client_8.2.x_redhat_x64.zip。此处仅以dws_client_8.1.x_redhat_x64.zip作为示例。

    执行上传Linux gsql操作的用户需要对客户端主机的目标存放目录有完全控制权限。

    或者,您也可以先SSH远程管理到需要安装Linux gsql的Linux主机,然后在Linux命令窗口,执行以下命令下载Linux gsql客户端:

    1
    wget https://obs.ap-southeast-1.myhuaweicloud.com/dws/download/dws_client_8.1.x_redhat_x64.zip --no-check-certificate
    

  2. 使用SSH会话工具,远程管理客户端主机。

    弹性云服务器的登录方法请参见《弹性云服务器用户指南》中的SSH密码方式登录章节。

  3. (可选)如果要使用SSL方式连接集群,请参考使用SSL进行安全的TCP/IP连接章节,在客户端主机配置SSL认证相关的参数。

    SSL连接方式的安全性高于非SSL方式,建议在客户端使用SSL连接方式。

  4. 执行以下命令解压客户端工具。

    cd <客户端存放路径>
    unzip dws_client_8.1.x_redhat_x64.zip

    其中:

    • <客户端存放路径>:请替换为实际的客户端存放路径。
    • dws_client_8.1.x_redhat_x64.zip:“RedHat x64”对应的客户端工具包名称,请替换为实际下载的包名。

  5. 执行以下命令配置客户端。

    source gsql_env.sh

    提示以下信息表示客户端已配置成功。

    All things done.

  6. 执行以下命令,使用gsql客户端连接GaussDB(DWS)集群中的数据库。

    gsql -d <数据库名称> -h <集群地址> -U <数据库用户> -p <数据库端口> -W <集群密码> -r

    参数说明如下:

    • “数据库名称”:输入所要连接的数据库名称。首次使用客户端连接集群时,请指定为集群的默认数据库gaussdb
    • “集群地址”:请参见获取集群连接地址进行获取。如果通过公网地址连接,请指定为集群“公网访问地址”“公网访问域名”,如果通过内网地址连接,请指定为集群“内网访问地址”“内网访问域名”。如果通过弹性负载均衡连接,请指定为“弹性负载均衡地址”
    • “数据库用户”:输入集群数据库的用户名。首次使用客户端连接集群时,请指定为创建集群时设置的默认管理员用户,例如“dbadmin”
    • “数据库端口”:输入创建集群时设置的“数据库端口”

    例如,执行以下命令连接GaussDB(DWS)集群的默认数据库gaussdb

    1
    gsql -d gaussdb -h 10.168.0.74 -U dbadmin -p 8000 -W password -r
    

    显示如下信息表示gsql工具已经连接成功:

    1
    gaussdb=>
    

gsql命令参考

有关gsql的命令参考和更多信息,请参见《数据仓库服务工具指南》

(可选)使用gsql导入TPC-DS样例数据

GaussDB(DWS)支持用户将数据从集群外导入到集群中。用户可以参考以下指导,快速将样例数据从OBS导入集群,并对样例数据进行查询和分析。导入的样例数据是使用TPC-DS测试基准生成的标准性能测试数据。

TPC-DS是数据库决策支持测试基准。通过使用TPC-DS的测试数据以及测试案例,用户可以模拟真实场景下大数据集的统计、报表生成、联机查询、数据挖掘等复杂场景,从而了解数据库应用的功能和性能。

当前TPC-DS样例数据仅支持在“北京一”区域导入,其他区域暂不支持。

  1. 使用SSH远程连接工具登录gsql客户端主机,并进入gsql目录,本例假设gsql客户端放在/opt目录下。

    cd /opt

  2. 执行以下命令,切换到指定目录并设置用户导入样例数据的用户密钥和OBS访问地址。

    1
    2
    cd sample
    /bin/bash setup.sh -ak <Access_Key_Id> -sk <Secret_Access_Key> -obs_location obs.ap-southeast-1.myhuaweicloud.com
    

    系统显示以下信息表示设置成功:

    setup successfully!

    <Access_Key_Id>和<Secret_Access_Key>:分别表示访问密钥ID和私有访问密钥。请参见创建访问密钥(AK和SK)进行获取。然后将获取到的值替换到创建外表语句中。

  3. 返回上一级目录,执行gsql环境变量。

    1
    2
    3
    cd ..
    source gsql_env.sh
    cd bin
    

  4. 执行以下命令,将样例数据导入数据仓库。

    命令格式:

    1
    gsql -d <数据库名称> -h <集群公网访问地址> -U <管理员用户> -p <数据仓库端口> -f <样例数据脚本保存路径> -r
    

    命令示例:

    1
    gsql -d gaussdb -h 10.168.0.74 -U dbadmin -p 8000 -f /opt/sample/tpcds_load_data_from_obs.sql -r
    

    命令中样例数据脚本“tpcds_load_data_from_obs.sql”存放在GaussDB(DWS)客户端的sample目录下,如“/opt/sample/”。

    根据界面提示输入管理员密码,成功连接集群数据库后,系统会自动创建样例数据对应的外表用于关联集群外的数据,然后再创建存放样例数据的目标表,最后通过外表将数据导入到目标表中。

    由于数据集较大,导入时间取决于当前DWS集群规格,一般为10~20分钟左右,等待系统显示如下执行时间信息表示导入成功,如下时间仅为示例。

    1
    Time:1845600.524 ms
    

  1. 在Linux命令窗口,执行以下命令,切换到指定目录并查询样例数据。

    1
    2
    cd /opt/sample/query_sql/
    /bin/bash tpcds100x.sh
    

  2. 根据命令提示,输入集群公网访问地址的IP地址、数据库端口、数据库名称、数据库访问用户以及用户密码。

    • 数据库名称默认为gaussdb
    • 数据库访问用户和密码使用创建集群时配置的管理员用户和密码。

    查询完成后,在当前查询目录,如“sample/query_sql/”下面会生成一个存放查询结果的目录,命名如“query_output_20170914_072341”。