记录openGauss实验过程

gitee地址

openGauss

预下载工具

Putty
WinSCP

文档

openGauss的AI特性实践 华为云实验环境搭建指南(学生版) v1.2.docx
openGauss的AI特性实践实验手册(学生版) v1.2.docx

过程记录

(无特殊说明即依照文档进行操作)

设置华为云服务器

创建虚拟私有云

注意可能重名的情况应当更改命名以避免不可知的问题

购买ECS

(带宽从$5$M提高到$20$M)
问题-201:主机安全选项?(选择了打开-基础版)
问题-301:网络配置信息?(无带宽类型)
记录-401:云服务器opengauss01密码:openGauss21
记录-601:弹性IP:124.71.226.133
Q2.5:为何在购买ECS服务器前,需要配置VPC?
A:ECS弹性云服务器需要建立在VPC虚拟私有云上(?

释放云服务器(在完成实验后)

在ECS界面找到所申请的云服务器资源,在操作-更多中删除,并释放云服务器绑定的弹性公网IP地址、删除云服务器挂载的数据盘。

Q3.3:删除ECS时,为何需要释放弹性公网IP和删除云服务器挂载的数据盘?
A:避免不必要的资源占用和收费(?

关卡一:openGauss数据安装及基本操作

2.2.1:
记录301:修改omm用户密码:gaussDB21
下载501:wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/1.1.0/openGauss-third_party_binarylibs.tar.gz(~2.5G/40min)
实际速度(带宽为5M):Screenshot of download speed of wget
记录801:下载cmake 3.20.0 Official

2.2.2:
记录301:建议把所有export加入~/.bash_profile(建议改用~/.bashrc
记录801:gs_initdb:passwd=gaussDB21
截图1100:Screenshot of gaussDB at step 11 of 2.2.2
问题1101:是否一定要修改密码?
问题1102:修改密码的语法?(REPLACE grammar:ALTER USER jim IDENTIFIED BY ‘Abcd@123’ REPLACE ‘Bigdata@123’;?)
记录1103:未修改密码(此步跳过)

2.2.3:
验证101:Screenshot of state of gaussDB
验证201:Screenshot of process of gaussDB
Q301A:2.2.4->QA + 验证101 + 验证201

2.2.4:
QA:从gitee下载的源安装包所含的是c/c++源代码,需要经过编译才能运行。步骤包含:

  • 环境准备
  • 下载第三方编译库(gcc/g++)
  • 配置环境变量
  • 下载openGauss源码,编译并安装
  • 初始化并启动数据库

关卡二:openGauss数据导入及基本操作

3.2.1:
注意201:从github进行git clone可能需要多次尝试(网络原因)
截图202:Screenshot of speed of cloning from GitHub
问题401:cd目录不存在(结合后面make大概是最后chown目录是多余的?)
问题601:gsqlcommand not found(返回前面配置环境变量处重新配置,疑似每次重新登录都需要重新配置环境变量(是否应当使用.bashrc代替.bash_profile,尽管都是初始化配置))
记录901:产生测试数据成功
记录902:回显生成的数据
记录1201:登录数据库验证,查询结果截图
记录1801:需要文件target.sql(待上传)
问题2001:gsql时需要密码但密码不正确(我也不知道密码是啥……前面没改密码和这是不是多少有点关系)(upd:没有一点关系……光速道歉
解决2001:gsql -U omm -d tpch -p 5432 -r -f /opt/software/target.sql > /opt/software/target.log
截图2101:Screenshot of 12 tables

3.2.2:
截图401:Screenshot of result and time
截图501:Screenshot of result and time
截图601:Screenshot of result and time
截图701:Screenshot of result and time
截图801:Screenshot of result and time
截图901:Screenshot of result and time
截图1001:Screenshot of result and time
截图1101:Screenshot of result and time
结论1201:行存表和列存表的主要区别为行连续和列连续的存储方式。对于行存表,每一条记录是连续的,每一条记录所占空间大小是固定的,则找到某一条记录时其相对于列存表会更高效;对于列存表,所有数据的某种特定属性数据连续,则其求和和求均值时访问的数据连续,与行存表每次需要向后跳多个指针位置相比更高效。

3.2.3.1:
截图201:Screenshot of result
截图401:Screenshot of result
截图701:Screenshot of result

3.2.3.2:
截图201:Screenshot of result
截图501:Screenshot of result
截图801:Screenshot of result
结论1001:全量物化视图会对当前数据库的视图进行完全更新,即涉及全部数据;增量物化视图只会对数据库的视图进行部分更新,即只涉及发生修改/更新的数据。全量物化能保证数据视图保持有序性,但更新的时间复杂度较高;增量更新的时间复杂度较低,但也牺牲了视图的有序性。

3.2.5(思考题):
Q:行存表与列存表在执行相同的SQL语句时,为何执行的时间不同?在执行哪些类型SQL时,行存表效率更高?在执行哪些类型SQL时,列存表效率更高?全量物化视图与增量物化视图有哪些差别?
A:行存表和列存表的主要区别为行连续和列连续的存储方式。对于行存表,每一条记录是连续的,每一条记录所占空间大小是固定的,则找到某一条记录时其相对于列存表会更高效;对于列存表,所有数据的某种特定属性数据连续,则其求和和求均值时访问的数据连续,与行存表每次需要向后跳多个指针位置相比更高效。全量物化视图会对当前数据库的视图进行完全更新,即涉及全部数据;增量物化视图只会对数据库的视图进行部分更新,即只涉及发生修改/更新的数据。全量物化能保证数据视图保持有序性,但更新的时间复杂度较高;增量更新的时间复杂度较低,但也牺牲了视图的有序性。

关卡三:openGauss的AI4DB特性应用

4.2.1:
问题101:无法安装X-Tuner
Screenshot of problem

upd-0713: 手册更新为V2.0,已在记录V2中重开

重点记录

  • 行存和列存
  • 全量/增量物化视图