用5000字长文记录华为仓库服务GaussDB(DWS)上手过程这次高斯不是数学家
Posted 梦想橡皮擦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用5000字长文记录华为仓库服务GaussDB(DWS)上手过程这次高斯不是数学家相关的知识,希望对你有一定的参考价值。
这篇操作流程可以好好实践!
快速上手
本篇博客记录和说明华为仓库 GaussDB(DWS)的使用步骤,如果你未购买,可以点击下述链接,从沙箱进行体验。
作为一个初学者,下图就是一个非常完整的学习流程,图示如下,关键词在图片后面进行说明:
Gsql 客户端(PC 端安装,也叫作实验桌面)
这里理解成一台云端电脑即可,点击之后,系统会自动初始化一个可操作的设备,简单理解就是一台在浏览器运行的服务器。
使用 uname -a
查看设备系统信息,实验设备配置如下:
这里也可以切换到实验拓扑图,即网页中间区域的两个图标。
VPC 虚拟私有云,即 Virtual Private Cloud
虚拟私有云是我们在华为云上一块独立的,私密的虚拟网络环境,可以在这里配置 IP 地址段,子网,安全组等信息。
接下来我们就配置一下这部分内容。
继续进入实验桌面,然后开启它内置的谷歌浏览器。
这里系统贴心的为我们登录好了对应的实验账号,你只需要操作即可。
如果浏览器没有给我们登录账号,请点击 IAM 用户登录,然后将实验账号填写之后登录。
在全部服务中,找到虚拟私有云。
接下来按照步骤创建虚拟私有云。
第一步:点击右上角按钮,创建虚拟私有云
第二步:填写基本信息
所有信息保持默认即可,其中名称可以自定义,例如橡皮擦写的是 vpc-CA。
不过这里遵循官网建议,还是用系统分配的账号名代替 CA,例如系统给我分配的是 Sandbox-Voyager1184
这里我就写成 vpc-Sandbox-Voyager1184
。
点击创建完毕,得到下图所示内容,表示创建成功。
学习数据仓库服务(DWS)
虚拟私有云创建完毕,就可以进入数据仓库服务 DWS 的实践了。
实验环境提供给我们的是创建 3 节点规模的 DWS 集群。
下面我们就开始学习如何创建
进入数据仓库服务页面
继续登录实验桌面,按照下图进行操作。
依旧在右上角寻找创建数据仓库集群按钮,在出现的界面中配置如下信息。
下拉之后更多内容配置可以参考下图设置,其中 虚拟私有云 就是上文我们创建的 VPC。
- ① 集群名称:dws-demo
- ② 管理员用户:保持默认
- ③ 管理员密码:Bigdata_2013
公网 IP 也需要即时购买,操作如下图所示:
当出现下述界面,表示 DWS 订单已经提交,等待即可。
进入 OBS 桶学习
准备好 DWS 之后,就可以进入存储服务 OBS 的学习流程中了。
选择存储->对象存储服务 OBS。
依旧在右上角寻找创建桶按钮。
按照下述参数进行配置:
- ① 区域:华北-北京四
- ② 桶名称: obs-voyager1190(用系统给你分配的账号即可)
- ③ 数据冗余存储策略:多 AZ 存储
- ④ 默认存储类别:标准存储
- ⑤ 桶策略:私有
- ⑥ 归档数据直读:关闭
出现下述界面,表示桶创建成功。
接下来继续点击桶名,然后在出现的界面中点击 对象菜单
创建一个文件夹,名称任意。
接下来使用实验环境提供的测试数据即可。
直接复制 vim /home/user/Desktop/product_info0.csv
到 Xfce 终端执行。
接下来复制下述文本,然后使用 :wq!
保存文件。
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
和 product_info2.csv
两个文件。
product_info1.csv
文件一
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_info1.csv
文件二
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."
此时三个文件都出现在桌面上。
下面我们上传这三个文件到桶对象的文件夹中即可。
选中 3 个文件之后的效果。
上传成功的效果图。
最终一步:通过软件实现对数据的操作。
准备工作到这里已经完成,下述都是软件的操作了。
继续按照上文的流程打开 DWS,然后找到连接管理按钮,下载 gsql 命令行客户端。
下载软件完毕之后,就可以将该文件拷贝到 /opt
目录。
这里实验手册有些问题,因为 home 目录无操作权限,顾下述命令无法被执行。
cp /home/user/Downloads/dws_client_8.1.x_redhat_x64.zip /home
由于是在测试环境,所以我们直接解压下载的文件,然后执行对应命令即可。
unzip dws_client_8.1.x_redhat_x64.zip
source gsql_env.sh
通过公网 IP 连接 DWS 数据库
gsql -d gaussdb -h <DWS公网IP> -U dbadmin -p 8000 -r -W <dbadmin密码>;
其中公网 IP 可以从 DWS 集群服务的面板获取,密码就是设置的 Bigdata_2013。
进入数据仓库服务,呈现的效果图如下所示:
正式使用数据前,还需要配置一下凭证,在浏览器右上角用户信息位置选择我的凭证
选择访问密钥,然后点击立即下载。
进入 download 文件夹,然后使用 cat credentials.csv
命令查看 AK 和 SK 值。
接下来继续使用终端命令行,用 SQL 语句创建 OBS 外表。
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';
创建完毕还需要熟悉一些 GaussDB 的常用命令,例如:
\\l
:列出所有数据库\\d
:列出当前数据库下的表\\q
: 退出登录
从手册在复制一份 SQL 建表语句。
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);
接下来想要获取一下表数据,然后果然出现了错误,即下述命令报错
select * from product_info_ext
官网实验步骤中也对此进行了说明,需要我们修改 SK 值,原因是 SK 值不包含 user
。
重新创建该表之后,可以进行数据查询,删除外表命令为:
drop foreign table product_info_ext;
接下来就是最后一个步骤,从 OBS 外表插入数据。
INSERT INTO product_info SELECT * FROM product_info_ext;
简单查询一下 product_info
表格数据,如下所示:
select * from product_info;
数据恰好是 20 条,对应了前文创建的 product_info0.csv
,product_info1.csv
,product_info2.csv
表。
以上是关于用5000字长文记录华为仓库服务GaussDB(DWS)上手过程这次高斯不是数学家的主要内容,如果未能解决你的问题,请参考以下文章
华为云原生之数据仓库服务GaussDB(DWS)的深度使用与应用实践
类型即正义,TypeScript 从入门到实践:5000字长文带你重新认识泛型