使用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客户端主机
购买弹性云服务器的操作步骤,请参见《弹性云服务器快速入门》中的购买并登录Linux弹性云服务器章节。
创建的弹性云服务器需要满足如下要求:
- 弹性云服务器需要与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。
- “Redhat x86_64”客户端工具支持在以下系统中使用:
- 如果客户端通过内网地址访问集群,请确保创建的弹性云服务器与GaussDB(DWS)集群在同一虚拟私有云里。
虚拟私有云相关操作请参见《虚拟私有云用户指南》中虚拟私有云和子网章节。
- 如果客户端通过公网地址访问集群,请确保创建的弹性云服务器和GaussDB(DWS)集群都要有弹性IP。
- 弹性云服务器对应的安全组规则需要确保能与GaussDB(DWS)集群提供服务的端口网络互通。
安全组相关操作请参见《虚拟私有云用户指南》中安全组章节。
请确认弹性云服务器的安全组中存在符合如下要求的规则,如果不存在,请在弹性云服务器的安全组中添加相应的规则:
- 方向:出方向
- 协议:必须包含TCP,例如TCP、全部。
- 端口:需要包含GaussDB(DWS)集群提供服务的数据库端口,例如,设置为“1-65535”或者具体的GaussDB(DWS)数据库端口。
- 目的地址:设置的IP地址需要包含所要连接的GaussDB(DWS)集群的连接地址。其中0.0.0.0/0表示任意地址。
图1 出方向的规则
- GaussDB(DWS)集群的安全组规则需要确保GaussDB(DWS)能接收来自客户端的网络访问。
下载Linux gsql客户端并连接集群
- 请参见下载客户端下载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.cn-north-1.myhuaweicloud.com/dws/download/dws_client_8.1.x_redhat_x64.zip --no-check-certificate
- 使用SSH会话工具,远程管理客户端主机。
弹性云服务器的登录方法请参见《弹性云服务器用户指南》中的SSH密码方式登录章节。
- (可选)如果要使用SSL方式连接集群,请参考使用SSL进行安全的TCP/IP连接章节,在客户端主机配置SSL认证相关的参数。
SSL连接方式的安全性高于非SSL方式,建议在客户端使用SSL连接方式。
- 执行以下命令解压客户端工具。
cd <客户端存放路径> unzip dws_client_8.1.x_redhat_x64.zip
其中:
- <客户端存放路径>:请替换为实际的客户端存放路径。
- dws_client_8.1.x_redhat_x64.zip:这是“RedHat x64”对应的客户端工具包名称,请替换为实际下载的包名。
- 执行以下命令配置客户端。
source gsql_env.sh
提示以下信息表示客户端已配置成功
All things done.
- 执行以下命令,使用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样例数据仅支持在“北京一”区域导入,其他区域暂不支持。
- 使用SSH远程连接工具登录gsql客户端主机,并进入gsql目录,本例假设gsql客户端放在/opt目录下。
cd /opt
- 执行以下命令,切换到指定目录并设置用户导入样例数据的用户密钥和OBS访问地址。
1 2
cd sample /bin/bash setup.sh -ak <Access_Key_Id> -sk <Secret_Access_Key> -obs_location obs.cn-north-1.myhuaweicloud.com
系统显示以下信息表示设置成功:
setup successfully!
<Access_Key_Id>和<Secret_Access_Key>:分别表示访问密钥ID和私有访问密钥。请参见创建访问密钥(AK和SK)进行获取。然后将获取到的值替换到创建外表语句中。
- 返回上一级目录,执行gsql环境变量。
1 2 3
cd .. source gsql_env.sh cd bin
- 执行以下命令,将样例数据导入数据仓库。
命令格式:
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
- 在Linux命令窗口,执行以下命令,切换到指定目录并查询样例数据。
1 2
cd /opt/sample/query_sql/ /bin/bash tpcds100x.sh
- 根据命令提示,输入集群公网访问地址的IP地址、数据库端口、数据库名称、数据库访问用户以及用户密码。
- 数据库名称默认为“gaussdb”。
- 数据库访问用户和密码使用创建集群时配置的管理员用户和密码。
查询完成后,在当前查询目录,如“sample/query_sql/”下面会生成一个存放查询结果的目录,命名如“query_output_20170914_072341”。