GaussDB 200 存储方式和空间管理
华为大数据练习(试卷编号141)

华为大数据练习(试卷编号141)1.[单选题]以下关于DWS数据库透明加密的特点,错误的是:( )。
A)支持行存表数据加密,不支持列存表加密B)支持集群级别配置C)使用KMS服务加密D)加密密钥层次结构有三层答案:A解析:2.[单选题]对于 Elastic Search 描述不正确的是?()A)对 Lucene 进行了扩展B)不支持结构化数据存储C)能够水平扩展D)基于 Lucene 的全文检索服务答案:B解析:3.[单选题]以下( )文件格式为纯行式存储。
A)ORC FileB)Parquet FileC)Sequence FileD)RC File答案:C解析:4.[单选题]MVCC用于解决( )事务冲突。
A)读读B)写写C)读写D)上述都包括答案:C解析:5.[单选题]Redis 中 List 列表是什么数据结构实现的?()A)红黑树B)循环链表C)平衡二叉树D)双向链表6.[单选题]以下哪个选项对 Red is 数据读写流程描述是正确的?()A)Server A 节点返回集群拓扑―一客户端选择集群任意一个 Server A 节点连接――客户端计 算Key 归属的槽位以及对应 Server B 节点并连接--Server B 节点返回业务操作结果B)客户端选择集群任意一个 Server A 节点连接――Server A 节点返回集群拓扑―一客户端计 算Key 归属的槽位以及对应 Server B 节点并连接--Server B 节点返回业务操作结果C)Server A 节点返回集群拓扑--客户端计算 Key 归属的槽位以及对应 Server B 节点并连 接――客户端选择集群任意一个 Server A 节点连接--Server B 节点返回业务操作结果D)客户端选择集群任意一个Server A节点连接――客户端计算Key 归属的槽位以及对应Server B 节点并连接――Server A 节点返回集群拓扑――Server B 节点返回业务操作结果答案:B解析:7.[单选题]CREATE TABLE AS创建表,后面需要添加查询语句类型是:( )。
大数据华为认证考试(习题卷3)

大数据华为认证考试(习题卷3)第1部分:单项选择题,共51题,每题只有一个正确答案,多选或少选均不得分。
1.[单选题]ElasticSearch 存放所有关键词的地方是()A)字典B)关键词C)词典D)索引答案:C解析:2.[单选题]DWS DN的高可用架构是:( )。
A)主备从架构B)一主多备架构C)两者兼有D)其他答案:A解析:3.[单选题]关于Hive与传统数据仓库的对比,下列描述错误的是:( )。
A)Hive元数据存储独立于数据存储之外,从而解耦合元数据和数据,灵活性高,二传统数据仓库数据应用单一,灵活性低B)Hive基于HDFS存储,理论上存储可以无限扩容,而传统数据仓库存储量有上限C)由于Hive的数据存储在HDFS上,所以可以保证数据的高容错,高可靠D)由于Hive基于大数据平台,所以查询效率比传统数据仓库快答案:D解析:4.[单选题]以下哪种机制使 Flink 能够实现窗口中无序数据的有序处理?()A)检查点B)窗口C)事件时间D)有状态处理答案:C解析:5.[单选题]下面( )不是属性选择度量。
A)ID3 使用的信息增益B)C4.5 使用的增益率C)CART 使用的基尼指数D)NNM 使用的梯度下降答案:D解析:C)HDFSD)DB答案:C解析:7.[单选题]关于FusionInsight HD Streaming的Supervisor描述正确的是:( )。
A)Supervisor负责资源的分配和任务的调度B)Supervisor负责接受Nimbus分配的任务,启动停止属于自己管理的Worker进程C)Supervisor是运行具体处理逻辑的进程D)Supervisor是在Topology中接收数据然后执行处理的组件答案:B解析:8.[单选题]在有N个节点FusionInsight HD集群中部署HBase时、推荐部署( )个H Master进程,( )个Region Server进程。
GaussDB 200 数据库性能监控

系统资源监控-网络资源(1/2)
在所有存储节点,逐一执行sar和ifconfig命令,查看网络情况。 Sar命令, sar -n DEV 1,1为间隔时间,单位s。
“rxkB/s”为每秒接收的kB数,“txkB/s”为每秒发送的kB数。 分析时,请主要关注每个网卡的传输量和是否达到传输上限。
名称 nodename
类型 text
memorytype
text
memorymbytes integer
描述
节点名称
内存类型,包括以下几种: • total_vmem(虚拟内存) • res_mem(物理内存) • shared_mem(共享内存) • prog_mem(程序text段占用内存) • mctx_peak_mem(除postmaster主线程外通过
“rMB/s”为每秒读取的MB数,“wMB/s”为每秒写入的MB数,“%util”为硬盘使用率, await表示读写请求在队列中的等待时间(ms)。分析时,请主要关注单个硬盘的I/O使用率和 每秒读取、写入的数量。
系统资源监控-IO资源(2/2)
pidstat命令, pidstat -d 1 10,1为间隔时间,单位s,10表示查看占用I/O最多 的Top10进程。
date echo "free memory "$free sync sysctl -w vm.drop_caches=3 fi sleep 10 date done
系统资源监控-IO资源(1/2)
在所有存储节点,逐一执行iostat和pidstat命令,查看I/O情况。 Iostat命令, iostat -xm 1,1为间隔时间,单位s。
gaussdb列存表原理

gaussdb列存表原理GaussDB是华为公司自主研发的一种高性能、高可靠性的列存数据库管理系统。
它采用了列存储技术,将数据按列存储在磁盘上,相比于传统的行存储方式,具有更高的压缩比、更快的查询速度和更低的存储空间消耗。
列存储是一种将数据按列组织存储的技术。
相比于行存储,列存储具有以下优势:1. 数据冗余度低:列存储将相同列的数据存储在一起,可以大幅度减小数据的冗余度,提高存储空间的利用率。
2. 压缩比高:列存储可以对每一列的数据进行独立的压缩,不同列的数据特征差异大,因此可以选择更适合的压缩算法,提高压缩比。
3. 查询速度快:由于列存储将相同列的数据存储在一起,查询时只需要读取需要的列数据,可以避免读取不需要的数据,提高查询速度。
4. 处理高并发:列存储可以将不同列的数据分散存储在不同的磁盘上,提高了数据的并发读写能力,适合处理高并发的场景。
GaussDB列存表原理的核心是对数据进行压缩和编码。
在压缩方面,GaussDB采用了多种压缩算法,包括字典编码、位图编码、Run-length编码等。
这些压缩算法可以根据数据的特点选择最合适的压缩方法,提高压缩比。
在编码方面,GaussDB采用了独有的列存表编码方式。
每个列存表由多个数据块组成,每个数据块包含一个列存储的列数据。
数据块中的数据按照一定的编码方式进行存储,以提高查询的效率。
例如,可以将整数型数据按照字典编码方式进行存储,将字符串类型的数据按照位图编码方式进行存储。
这样可以减小存储空间的占用,提高查询速度。
GaussDB还采用了多版本并发控制(MVCC)机制,可以支持高并发的读写操作,保证数据的一致性和并发性。
GaussDB列存表在实际应用中具有广泛的适用性。
例如,在大数据分析领域,由于列存储方式具有更高的查询速度和更低的存储空间消耗,可以提高数据分析的效率和准确性。
在物联网领域,由于物联网设备产生的数据量庞大,采用列存储方式可以有效地减小存储空间的占用,降低存储成本。
GaussDB 200 数据库设计

void delta_decode(char *buffer, int length) {
② char last = 0;
for (int i = 0; i < length; i++) { char delta = buffer[i]; buffer[i] = delta + last; last = buffer[i]; } }
Page 4
数据库范式设计
范式和反范式的对比
范式化模型 反范式化模型
数据没有冗余,更新容易。
当表的数量比较多,查询设计需要很多 关联模型(join)时,会导致查询性能 低下。
数据冗余将带来很好的读取性能 需要维护冗余数据,从目前NoSQL的发 (因为不需要join很多表,而且通 展可以看到,对磁盘空间的消耗是可以 常反范式模型很少做更新操作)。 接受的。
压缩性能比较
压缩级别
低级别压缩
特征
系统CPU使用率较高,存储磁盘空间充足。
中度压缩 高级别压缩
系统CPU使用率适中,但存储磁盘空间不是特别 充足。
系统CPU使用率较低,磁盘空间不充裕。
使用场景
行存或列存
行存或列存 行存或列存
数据库性能瓶颈经常集中在磁盘I/O,数据压缩后,读取数据时,相对于压缩解压,减少I/O能够 更好地提高性能。
GaussDB 200 数据库设计
目录
1. 数据库逻辑设计 2. 存储模式 3. 数据分布 4. 表分区 5. 索引
根据应用逻辑设计数据库
根据业务逻辑,抽象出表定义,表其实就是描述 第1步 了实体的各个属性。
根据业务逻辑,判断表在数据库中的存储方式。
第2步
优化表定义和查询语句。
华为云 GaussDB 用户指南说明书

云数据库 GaussDB 用户指南文档版本01发布日期2023-03-30版权所有 © 华为云计算技术有限公司 2023。
保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
商标声明和其他华为商标均为华为技术有限公司的商标。
本文档提及的其他所有商标或注册商标,由各自的所有人拥有。
注意您购买的产品、服务或特性等应受华为云计算技术有限公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或特性可能不在您的购买或使用范围之内。
除非合同另有约定,华为云计算技术有限公司对本文档内容不做任何明示或暗示的声明或保证。
由于产品版本升级或其他原因,本文档内容会不定期进行更新。
除非另有约定,本文档仅作为使用指导,本文档中的所有陈述、信息和建议不构成任何明示或暗示的担保。
目录1 快速入门 (1)1.1 简介 (2)1.2 登录管理控制台 (3)1.3 创建实例 (3)1.4 使用客户端连接实例 (9)1.4.1 实例连接方式介绍 (9)1.4.2 通过数据管理服务DAS连接实例 (9)1.4.3 通过内网连接实例 (10)1.5 使用驱动连接实例 (12)1.5.1 开发规范 (13)1.5.2 使用JDBC连接数据库 (13)1.5.3 使用ODBC连接数据库 (26)1.5.4 使用libpq连接数据库 (32)1.5.5 使用Psycopg连接数据库 (37)1.6 示例:使用DAS连接实例并执行SQL (38)2 用户指南 (43)2.1 登录管理控制台 (43)2.2 权限管理 (43)2.2.1 创建用户并授权使用GaussDB (43)2.2.2 自定义策略 (45)2.3 实例管理 (45)2.3.1 修改实例名称 (45)2.3.2 重启实例 (46)2.3.3 删除实例 (47)2.3.4 重置管理员密码 (47)2.3.5 节点扩容 (48)2.3.6 磁盘扩容 (53)2.3.7 查看和修改实例参数 (54)2.3.8 规格变更 (56)2.3.9 导出实例列表 (57)2.3.10 设置安全组规则 (58)2.3.11 日志管理 (59)2.3.12 节点替换 (59)2.4 连接管理 (61)2.5 参数模板管理 (62)2.5.1 创建参数模板 (62)2.5.2 编辑参数模板 (63)2.5.3 导出参数 (64)2.5.4 比较参数模板 (64)2.5.5 查看参数修改历史 (65)2.5.6 复制参数模板 (66)2.5.7 重置参数模板 (67)2.5.8 应用参数模板 (67)2.5.9 查看参数模板应用记录 (68)2.5.10 修改参数模板描述 (68)2.5.11 删除参数模板 (68)2.6 数据备份 (69)2.6.1 备份概述 (69)2.6.2 设置实例级自动备份策略 (70)2.6.3 设置表级自动备份策略 (72)2.6.4 设置跨区域备份策略 (73)2.6.5 创建实例级手动备份 (75)2.6.6 创建表级手动备份 (78)2.6.7 导出备份信息 (79)2.6.8 删除手动备份 (80)2.6.9 已删除实例备份保留策略修改 (80)2.6.10 已删除实例通过自动备份恢复 (81)2.7 数据恢复 (82)2.7.1 通过备份文件恢复实例 (82)2.7.2 通过备份文件恢复库/表 (84)2.7.3 恢复实例到指定时间点 (86)2.7.4 恢复库/表到指定时间点 (87)2.8 监控指标 (89)2.8.1 查看监控指标 (89)2.8.2 监控指标一览表 (91)2.9 配额管理 (94)2.10 配额计算 (94)2.11 任务中心 (98)2.11.1 查看任务 (98)2.11.2 删除任务 (99)2.12 服务声明 (99)2.12.1 GaussDB seccomp免责声明 (99)2.13 容灾管理 (100)2.13.1 创建容灾任务 (100)2.13.3 容灾升主 (102)2.13.4 停止灾备任务 (103)2.13.5 删除灾备任务 (103)2.13.6 主实例故障后重建灾备任务 (104)2.13.7 容灾主备关系切换 (104)2.13.8 容灾回切 (105)2.13.9 灾备实例容灾演练 (105)2.13.10 主实例日志保持 (106)2.13.11 灾备实例限制说明 (106)2.14 回收站 (110)A 创建VDC和VDC用户 (112)A.1 VDC租户模型简介 (112)A.2 登录ManageOne (113)A.3 创建租户(含管理员、默认一级VDC和企业项目) (114)A.4 为VDC租户配置网络 (115)A.5 创建资源集 (116)A.6 配置企业项目 (117)A.7 创建VDC业务员 (118)A.8 创建二级及以下VDC(含管理员和默认企业项目) (120)B 修订记录 (122)1快速入门本章指导您快速的创建、连接并使用GaussDB。
GaussDB200 并发控制

D – Durability 持久性 事务的结果是持久的
示例: 从A账户转账50元到B账户 begin 1.read(A) 2. A := A – 50 3.write(A) 4.read(B) 5.B := B + 50 6.wri能优化
特性设计:
1. 事务同步等待的目的是防止查询的tuple正在进行第二阶段提交导致不可见,如果新的事务和 本地正在进行第二阶段事务无关的话其实没有必要等待,基于这个思想,那么可以把事务等待 机制挪到判断tuple可见性的地方,这样可以减少大部分的冲突,不阻塞集群后续业务。
2. 两阶段提交时,在two-phase文件持久化过程中,目前是将two-phase文件内容写入到xlog 日志中,并在磁盘上创建two-phase文件并用write方式写入,在checkpoint过程中对twophase文件做fsync。
两阶段事务性能优化
技术对比:
读外部一致性:不会读到一个两阶段事务的中间状态。即系统写 入什么,读出来就是什么,真正保证事务的原子性。
产品 中间件 GoldenDB OceanBase GTS Oracle Spanner GaussDB
对比 不保证外部一致性 不保证delete操作和聚焦查询的读外部一致性 正在构筑读外部一致性 2PC,不保证读外部一致性 已经提供了读外部一致性 已经提供了读外部一致性 提供读外部一致性
节点涉及残留事务(DDL),若不降低隔离级别,现在系统可能会阻塞操作避免出现数据不一 致现象。此时若想使用,可以考虑降低隔离级别为Read Uncommitted。 语句:SET TRANSACTION ISOLATION LEVEL READ COMMITTED | READ UNCOMMITTED. 注意:
高斯db 技术指标

高斯db 技术指标高斯DB技术指标高斯DB(GaussDB)是华为公司自主研发的一款分布式关系型数据库管理系统(RDBMS),基于高斯分布式数据库技术。
高斯DB 技术指标是评估高斯DB数据库性能和功能的标准,它涵盖了数据库的各个方面,包括数据存储、查询性能、高可用性、安全性等。
一、数据存储高斯DB采用分布式存储架构,支持数据的水平切分和分布式存储,能够实现海量数据的高效存储和管理。
高斯DB的数据存储技术指标主要包括以下几个方面:1. 存储容量:高斯DB具有极高的存储容量,可以存储PB级数据。
它采用了数据压缩和列存储等技术,提高了存储效率。
2. 存储引擎:高斯DB支持多种存储引擎,包括传统的B树索引和现代的LSM树索引。
不同的存储引擎适用于不同的场景,可以根据实际需求选择合适的存储引擎。
3. 数据分区:高斯DB支持数据的水平切分和分布式存储,可以根据业务需求将数据划分到不同的存储节点上,提高了数据的并发读写能力和负载均衡能力。
4. 数据压缩:高斯DB支持数据的压缩存储,可以减少存储空间的占用。
它采用了行压缩和字典压缩等技术,提高了数据的存储效率。
二、查询性能高斯DB具有出色的查询性能,能够满足复杂查询和高并发读写的需求。
高斯DB的查询性能技术指标主要包括以下几个方面:1. 并发处理能力:高斯DB采用多线程处理查询请求,能够实现高并发的查询处理。
它具有良好的横向扩展性,可以根据实际需求增加节点数,提高并发处理能力。
2. 查询优化:高斯DB具有强大的查询优化功能,能够通过统计信息和索引选择等技术,优化查询计划,提高查询性能。
3. 分布式查询:高斯DB支持跨节点的分布式查询,可以通过并行查询和数据传输优化等技术,提高查询效率和响应速度。
4. 数据缓存:高斯DB采用了多级缓存机制,包括内存缓存和SSD 缓存,能够提高热数据的访问速度。
三、高可用性高斯DB具有高可用性,能够保证业务系统的连续性和数据的安全性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Page Header Item Item Item Item
插入
Tuple
Tuple
Tuple
Special
Tuple
Tuple
Tuple
Tuple
Special
删除
更新
Page Header Item Item Item
Page Header Item Item Item
在Tuple头部打 上删除标记
Tuple
Tuple
Tuple
在Tuple头部打 上删除标记
Tuple
Tuple
Tuple
Tuple
Page 10
TOAST机制介绍
TOAST技术将大的字段值压缩和/或打碎成多个物理行进行存储的技术。 该项技术支持符合以下条件的数据类型:
• 变长 (varlena)表现形式的数据类型。 • 只有向表中存储超过2KB(1/4页)的字段时才会触发。 • 最大存储1GB( 230 - 1字节)的数据类型。
滚机制,保证扩容能回退到数据一致性状态。 ● 扩容完成后,数据重分布过程采用一致性Hash技术使得需要迁移的数据量最小。 ● 数据重分布完成后,会删除Node Group1。扩容过程中查询访问Node Group 1,扩容结束后查询访问Node
Group 2,保证扩容重分布过程中的业务持续性。
扩容完成前
GaussDB 200 存储方式和空间管理
课程概述
本课程主要介绍
行列式存储文件结构、TOAST、自由空间映射、可见性映射、数据库分 页、文件读写机制、数据库日志介绍
面向对象:
华为IT大数据产品相关渠道合作伙伴售前、实施人员及客户
ቤተ መጻሕፍቲ ባይዱ完本课程后,您将能够:
了解GaussDB 200的HASH机制 了解GaussDB 200数据存储结构 了解GaussDB 200表空间管理 了解GaussDB 200 HA机制
Create table test (id int, name string); Insert into test values (1001, lottu); Insert into test values (1002, rax); Insert into test values (1003, xuan); Insert into test values (1004, li0924);
(0,1): 表示该元组在表test的第一个数 据块的第一个偏移位置上
CTID
ID
NAME
(0,1)
1001
lottu
(0,2)
1002
rax
(0,3)
1003
xuan
(0,4)
1004
li0924
系统插入隐藏列
Page 9
记录插入、删除、更新对页面的影响
Page Header Item Item Item
base :包含每个数据库对应的子目录。 global :包含集群中表的子目录。 pg_tblspc: 包含指向表空间的符号链接。
Page 7
行存表的存储结构
数据文件所在目录:$tablespace/DatabaseOID/tableOID …/tableOID.1 …/tableOID.2 …/tableOID_fsm …/tableOID_fsm.1 …/tableOID_fsm.2 …/tableOID_vm …/tableOID_vm.1 …/tableOID_vm.2
扩容完成后
Node Group 1 ……
主机 主机
Node Group 2
……
主机 扩容主机 扩容主机
Page 5
目录
1. 哈希机制 2. 数据存储结构 3. 表空间管理 4. 日志管理
Page 6
存储系统概述——系统目录结构介绍
$XCDATA/coordinator (the same as data_node directory tree) ../data_node |_ /base |_ /OIDxxx (table name oid) |_ /OIDyyy (table name oid) |_ /pg_tblspc |_ /OIDxxx (tablespce link) |_ /OIDyyy (tablespce link) |_ /global
语法结构
VACUUM [ ( { FULL | FREEZE | VERBOSE | ANALYZE } [, ...] ) ] [ table_name [ (column_name [, ...] ) ] ]
数据文件,以1GB为单位切割文件
Freespace映射文件
VFS
数据可见性文件
ext3
ext4
……
XFS
文件名:tableOID.1,1 GB
Page 1: 8 kB Page 2
……
Page n
Page 1: 8 kB
文件系统负责块映射
……
……
Page
Page
……
Page xxx
Page 8
如何识别记录——ctid的组成
valuen
分布表
col1 col2,… data1
H
data2
A
T2 data3
S
……
H
datan
Hash code 32位二进制值
Hashkey 一列或多列
Page 4
扩容数据重分布
● 扩容前的节点标记为Node Group 1,扩容后的节点标记为Node Group 2。 ● 扩容过程中采用事务语义,当故障(网络,磁盘等硬件故障,及人为取消扩容等)发生时,利用数据库的事务回
varchar2 int BLOB date number ……
head
chunk_id
chunk_seq
chunk_data1
chunk_data2
…
Page 11
VACUUM介绍(1/2)
VACUUM -- 垃圾收集以及可选地分析一个数据库。
VACUUM回收死行占据的存储空间。那些已经DELETE的行或者被UPDATE 过后过时的行 并没有从它们所属的表中物理删除;在完成VACUUM之前它们仍然存在。因此有必要周 期地运行VACUUM,特别是在经常更新的表上。
Page 2
目录
1. 哈希机制 2. 数据存储结构 3. 表空间管理 4. 日志管理
Page 3
数据Hash机制
DN1 T1 T2.p1
DN2 T1 T2.p2
DN3 T1 T2.p3 …… T1 T2.p...
DNn T1 T2.pn
映射 映射 映射 映射 映射
value1 value2 value3 ……