快速创建GaussDB(DWS)集群并导入数据进行查询
操作场景
数据仓库服务GaussDB(DWS)是完全托管的企业级云上数据仓库服务,具备免运维、在线扩展、高效的多源数据加载能力,兼容PostgreSQL生态。助力企业经济高效地对海量数据进行在线分析,实现数据快速变现。
本文以创建3节点的GaussDB(DWS)集群为例,通过导入OBS桶上csv格式的数据,完成简单的数据查询。
GaussDB(DWS)集群不支持跨区域访问OBS桶数据,创GaussDB(DWS)集群前需规划好GaussDB(DWS)集群与OBS桶在同一个区域内,本文以“华北-北京四”为例。
- 计费方式:按需
- 版本选择:存算一体
- 集群节点:3
- 连接集群方式:SQL编辑器
- 存储容量:20G/节点
- 数据源:OBS桶的csv数据
- 集群版本:8.1.3.x
操作流程
操作步骤 |
说明 |
---|---|
注册华为账号并开通华为云,实名认证,为账户充值以及规划和创建VPC、子网资源。 |
|
创建3节点的GaussDB(DWS)集群,配置集群节点、存储容量、集群版本号等信息。 |
|
创建OBS桶,并将本地的csv格式数据上传到OBS桶。 |
|
使用SQL编辑器连接GaussDB(DWS)数据库,并创建OBS外表,通过OBS外表将OBS桶数据导入GaussDB(DWS)集群,并进行简单SQL查询。 |
步骤一:创建GaussDB(DWS)集群
- 登录管理控制台,进入购买GaussDB(DWS)界面。
- 参见表2进行基础配置。
表2 基础配置 参数
示例
说明
区域
选择“华北-北京四”。
说明:本指导以“华北-北京四”为例进行介绍,如果您需要选择其他区域,请确保其他云服务均在同一区域。
请就近选择靠近您业务的区域,可以降低网络时延、提高访问速度。GaussDB(DWS)创建后无法更换区域,请谨慎选择。
更多信息,请参见区域和可用分区。
计费模式
按需计费。
支持包年/包月计费、按需计费。如长期使用,建议使用包年/包月,可享受更大折扣。
更多信息,请参见计费说明。
可用分区
单AZ,可用区1(如规格售罄,可选择其他可用区)。
- 单AZ:集群的所有节点部署在同一个AZ内。
- 多AZ:集群的节点部署在多个AZ内,满足集群跨AZ高可用要求,对高可用要求更高的业务,建议使用多AZ。
图1 基础配置
- 参见表3,进行数据仓库配置。
表3 数据仓库配置 参数
示例
说明
版本选择
存算一体
- 存算一体:数据存储在计算节点的本地磁盘。
- 存算分离:计算节点本地盘仅做数据缓存和存储元数据,用户数据存储在OBS对象存储上。
存储类型
SSD云盘
- SSD云盘:使用SSD类型的EVS作为数据存储介质,存储容量更加灵活,支持磁盘扩容。
- SSD本地盘:使用ECS规格自带的本地磁盘作为数据存储介质,容量固定,性能更高,不支持磁盘扩容。
更多信息,请参见SSD云盘和本地盘的区别。
部署类型
集群
- 集群:至少3个云服务器节点组成的服务器群组,计算节点DN形成安全环,保证主备高可靠。
- 单机:单个云服务器节点,成本更低,但无法保证数据高可靠性。
CPU架构
鲲鹏
集群节点的CPU架构:支持鲲鹏和X86。
节点规格
dwsk2.xlarge
说明:如规格售罄,可选择其他可用区或规格。
节点规格是衡量GaussDB(DWS)算力的一个指标,包含vCPUs和内存,请根据业务需求合理选择,通常对查询性能要求越高,选择的规格越大。
更多信息,请参见数据仓库规格。
热数据存储
20GB / 节点
每节点可用存储容量。界面上显示的是业务数据实际存储容量,例如20GB/节点,节点总数3,则业务数据总容量为60GB。对于业务数据量较大的客户,请合理规划存储容量。
节点数量
3
集群节点的数量。支持的节点数范围为3~256。
图2 数据仓库配置
- 单击“下一步:网络配置”。
- 参见表4进行网络配置。
表4 网络配置 参数
示例
说明
虚拟私有云
vpc-default
GaussDB(DWS)所在的虚拟私有云网络。
子网
subnet-default(192.168.0.0/24)
虚拟私有云的子网。
安全组
自动创建安全组
支持“自动创建安全组”或选择已创建的安全组。
系统默认选中“自动创建安全组”,设置为该选项时,系统将会自动创建一个默认安全组。
默认安全组的规则如下:出方向允许所有访问,入方向只开放用户设置的GaussDB(DWS) 集群的数据库端口8000。
公网访问
暂不使用
如果连接GaussDB(DWS)的客户端跟GaussDB(DWS)不在一个虚拟私有云网络内,需要选择使用弹性公网IP。
弹性负载均衡
暂不使用
用户使用客户端连接DWS集群时,如果用户仅连接一个CN节点地址,通过该CN节点内网IP或弹性公网IP连接时,只能连接到固定的CN节点上,存在CN单点问题。
利用ELB健康检查机制可将集群的CN请求快速转发到正常工作的CN节点上,当有CN故障节点时,也能第一时间切换流量到健康节点上,最大化降低集群访问故障。
更多信息,请参见集群绑定和解绑ELB。
图3 网络配置
- 单击“下一步:高级配置”,参见表5进行高级配置。
表5 高级配置 参数
示例
说明
集群名称
dws-demo
集群名称,用户自定义,支持后续修改。
集群版本
使用推荐版本
每个版本支持的数据库功能不同,默认选择推荐版本。如需使用高版本功能,请选择更高版本。
说明:白名单客户界面,会显示其他集群版本,请根据界面实际情况选择。
集群各版本支持功能,请参见产品公告。
管理员用户
dbadmin
指定数据库系统管理员的用户名,默认即可。
数据库系统管理员默认具有SYSADMIN属性,非三权分立模式下,拥有数据库最高权限。可用于规划数据库对象,例如创建数据库、用户、授权用户角色等操作。
更多信息,请参见数据库用户。
管理员密码
-
数据库系统管理员密码。
确认密码
-
数据库系统管理员密码。
数据库端口
8000
客户端连接GaussDB(DWS)数据库的端口,默认8000即可。
企业项目
default
仅当使用企业类型的账号创建GaussDB(DWS)时,会显示该参数。
用于按项目统一管理云资源。
高级配置
默认配置
高级配置支持“默认配置”和“自定义”。当选择“自定义”时,支持以下高级配置:
- 备份设备:OBS或者NFS。
- CN部署量:在大规模集群下,建议部署多个CN。
- 标签:在GaussDB(DWS)中,当用户创建集群后,如果想对集群添加如项目名称、业务类别、背景信息等相关信息的标识,用户可以通过添加标签来实现。如果用户在其他云服务中使用了标签,那么建议用户为同一个业务所使用的云资源创建相同的标签键值对以保持一致性。
- 加密数据库。开启后,GaussDB(DWS)将使用KMS(密钥管理服务)为集群及其快照的数据启用加密功能。
图4 高级配置
- 单击“下一步:确认配置”,确认无误后,单击“立即购买”。
等待约10分钟,集群创建成功。
步骤二:上传数据到OBS桶
- 创建OBS桶,参见OBS用户指南。
关键参数按如下填写,其他参数默认即可。
不支持跨区域访问OBS桶数据,OBS桶需跟GaussDB(DWS)创在同一个区域。例如“华北-北京四”。
- 区域:华北-北京四
- 桶名称:dws-obs01 (如提示冲突,可以依次递增到02、03)
- 桶策略:私有
- 创建OBS桶成功后,左侧选择“桶列表”,单击新创建的dws-obs01桶名,左侧导航选择“对象”,单击“新建文件夹”,文件夹名称为“input_data”,单击“确定”。
图5 新建文件夹
- 在本地PC创建3个csv数据文件,名字(含格式后缀)分别为product_info0.csv、product_info1.csv、product_info2.csv。
图6 创建csv文件
- 使用文本编辑工具分别打开3个csv文件,复制以下内容到每个csv文件中。
- product_info0.csv:
1 2 3 4 5
100,XHDK-A,2017-09-01,A,2017 Shirt Women,red,M,328,2017-09-04,715,good! 205,KDKE-B,2017-09-01,A,2017 T-shirt Women,pink,L,584,2017-09-05,40,very good! 300,JODL-X,2017-09-01,A,2017 T-shirt men,red,XL,15,2017-09-03,502,Bad. 310,QQPX-R,2017-09-02,B,2017 jacket women,red,L,411,2017-09-05,436,It's nice. 150,ABEF-C,2017-09-03,B,2017 Jeans Women,blue,M,123,2017-09-06,120,good.
- product_info1.csv:
1 2 3 4 5
200,BCQP-E,2017-09-04,B,2017 casual pants men,black,L,997,2017-09-10,301,good quality. 250,EABE-D,2017-09-10,A,2017 dress women,black,S,841,2017-09-15,299,This dress fits well. 108,CDXK-F,2017-09-11,A,2017 dress women,red,M,85,2017-09-14,22,It's really amazing to buy. 450,MMCE-H,2017-09-11,A,2017 jacket women,white,M,114,2017-09-14,22,very good. 260,OCDA-G,2017-09-12,B,2017 woolen coat women,red,L,2004,2017-09-15,826,Very comfortable.
- product_info2.csv:
1 2 3 4 5 6 7 8 9 10
980,"ZKDS-J",2017-09-13,"B","2017 Women's Cotton Clothing","red","M",112,,, 98,"FKQB-I",2017-09-15,"B","2017 new shoes men","red","M",4345,2017-09-18,5473 50,"DMQY-K",2017-09-21,"A","2017 pants men","red","37",28,2017-09-25,58,"good","good","good" 80,"GKLW-l",2017-09-22,"A","2017 Jeans Men","red","39",58,2017-09-25,72,"Very comfortable." 30,"HWEC-L",2017-09-23,"A","2017 shoes women","red","M",403,2017-09-26,607,"good!" 40,"IQPD-M",2017-09-24,"B","2017 new pants Women","red","M",35,2017-09-27,52,"very good." 50,"LPEC-N",2017-09-25,"B","2017 dress Women","red","M",29,2017-09-28,47,"not good at all." 60,"NQAB-O",2017-09-26,"B","2017 jacket women","red","S",69,2017-09-29,70,"It's beautiful." 70,"HWNB-P",2017-09-27,"B","2017 jacket women","red","L",30,2017-09-30,55,"I like it so much" 80,"JKHU-Q",2017-09-29,"C","2017 T-shirt","red","M",90,2017-10-02,82,"very good."
- product_info0.csv:
- 使用文本编辑工具转为UTF-8编码,并保存。
- 回到浏览器上的OBS控制台,左侧导航选择“桶列表”,单击新创建的dws-obs01桶名。
- 左侧导航选择“对象”,单击“input_data”文件夹。
- 单击“上传对象”,单击“添加文件”。
- 将product_info0.csv、product_info1.csv、product_info2.csv 3个文件上传到OBS桶。
步骤三:连接GaussDB(DWS)集群并导入数据进行分析
- 浏览器切换到GaussDB(DWS)管理控制台。
- 左侧导航选择“数据 > SQL编辑器”,单击“新增数据源”。
- 填写数据库连接信息。
- 集群:选择本文创建的dws-demo集群。
- 数据库:保持gaussdb默认。
- 数据源名称:dws-demo-01。
- 用户名:dbadmin
- 密码:步骤一:创建GaussDB(DWS)集群中创建GaussDB(DWS)时设置的密码。
- 勾选“记住密码”,单击“测试连接”。
图7 数据库连接信息
- 单击“确定”。
如下图,数据源名称前面图标为绿色,表示数据库连接成功。右侧区域为SQL编辑器窗口,可进行后续的SQL编写并执行SQL语句。
图8 连接数据库成功
后续连接会话超时,或者浏览器重新刷新时,图标置为灰色,表示连接断开,可以直接双击数据源名称重新连接数据库。
- 将以下SQL语句复制到SQL编辑器窗口中,并将OBS桶名称、AK值、SK值,替换成实际值。
本文OBS桶名为dws-obs01,AK值和SK值从访问密钥获取。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
CREATE FOREIGN TABLE product_info_ext ( product_price integer not null, product_id char(30) not null, product_time date, product_level char(10), product_name varchar(200), product_type1 varchar(20), product_type2 char(10), product_monthly_sales_cnt integer, product_comment_time date, product_comment_num integer, product_comment_content varchar(200) ) SERVER gsmpp_server OPTIONS ( LOCATION 'obs://OBS桶名称/input_data/', FORMAT 'CSV' , DELIMITER ',', ENCODING 'utf8', HEADER 'false', ACCESS_KEY 'AK值', SECRET_ACCESS_KEY 'SK值', FILL_MISSING_FIELDS 'true', IGNORE_EXTRA_DATA 'true' ) READ ONLY LOG INTO product_info_err PER NODE REJECT LIMIT 'unlimited';
图9 创建OBS外表
- 核对SQL语句无误,单击“运行”,创建OBS外表成功。
图10 创建OBS外表成功
- 复制以下SQL语句,在SQL窗口中执行,创建普通表。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
CREATE TABLE product_info ( product_price integer not null, product_id char(30) not null, product_time date , product_level char(10) , product_name varchar(200) , product_type1 varchar(20) , product_type2 char(10) , product_monthly_sales_cnt integer , product_comment_time date , product_comment_num integer , product_comment_content varchar(200) ) WITH ( orientation = column, compression=middle ) DISTRIBUTE BY hash (product_id);
- 复制以下SQL语句,在SQL窗口中执行,通过INSERT语句将OBS外表数据导入GaussDB(DWS)数据库。
1
INSERT INTO product_info SELECT * FROM product_info_ext;
- 复制以下SQL语句,在SQL窗口中执行,进行VACUUM和ANALYZE操作。
了解更多语法,请参考相关SQL语法章节。
1 2
VACUUM FULL product_info; ANALYZE product_info;
- 复制以下SQL语句,在SQL窗口中执行,查询数据明细成功。
1
SELECT * FROM product_info;
图11 查询数据成功