基本概念
DWS的管理概念
- 集群
表示由多个节点组成的服务器群组。DWS以集群为单位进行组织,一个DWS集群由多个在相同子网中的相同规格的节点组成,共同提供服务。
- 节点
每个DWS集群部署节点取值范围为3~256,每个节点都支持存储与分析数据。详情请参见DWS技术指标。
- 规格
- 快照
快照是用户根据需要创建的DWS集群备份,用于还原创建快照时的集群数据。快照会一直保存,直到用户使用管理控制台将此快照删除(自动快照不支持手动删除)。快照会占用用户购买使用的OBS配额。
- Project
Project用于将OpenStack的资源(计算资源、存储资源和网络资源)进行分组和隔离。Project可以是一个部门或者一个项目组。一个账户中可以创建多个Project。
DWS的数据库概念
- 数据库
数据库用于管理各类数据对象,与其他数据库隔离。创建数据库时可以指定对应的表空间,如果不指定相应的表空间,相关的对象会默认保存在PG_DEFAULT空间中。数据库管理的对象可分布在多个表空间上。
- 联机分析处理
联机分析处理(Online Analytical Processing,简称OLAP),是DWS集群的主要工作方式,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
- 大规模并行处理
大规模并行处理(Massive Parallel Processing,简称MPP,也可称为无共享架构),是指在DWS集群的每个节点中,都有独立的内存计算和磁盘存储系统,DWS根据数据库模型和应用特点,将业务数据划分到不同节点上,通过节点间的网络彼此连接协同计算,使集群作为整体提供数据库服务以满足业务需要。
- 无共享架构
无共享架构(Shared Nothing Architecture)是一种分布式计算架构。这种架构中的每一个节点都是独立、自给的,使整个系统中不出现单点竞争的情况,以提高工作效率。
- 数据库版本
- 数据库连接
- 数据库用户和角色
DWS使用用户和角色来控制对数据库的访问。根据角色自身的设置不同,一个角色可以看做是一个数据库用户,或者一组数据库用户。在DWS中角色和用户之间的区别只在于角色默认是没有LOGIN权限的。在DWS中一个用户唯一对应一个角色,不过可以使用角色叠加来更灵活地进行管理。
- 实例
实例在DWS中是运行在内存中的一组数据库进程,一个实例可以管理一个或多个数据库,这些数据库组成一个集簇。集簇是存储磁盘上的一个区域,这个区域在安装时初始化并由一个目录组成,所有数据都存储在这个目录中,这个目录被称为数据目录,使用initdb创建。理论上来说一个服务器上可以在不同的端口启动多个实例,但是DWS一次只能管理一个实例,启动和停止都是依赖于具体的数据目录。以后由于兼容的需要不排除引入实例名这个概念的可能。
- 表空间
在DWS中,表空间是一个目录,可以存在多个,里面存储的是它所包含的数据库的各种物理文件。由于表空间是一个目录,仅是起到了物理隔离的作用,其管理功能依赖于文件系统。
- 模式
DWS的模式是对数据库做一个逻辑分割。所有的数据库对象都建立在模式下面。DWS的模式和用户是弱绑定的,所谓的弱绑定是指虽然创建用户的同时会自动创建一个同名模式,但用户也可以单独创建模式,并且为用户指定其他的模式。
- V2表
V2表特指建表环节时,执行CREATE TABLE语法中定义的colversion取值为2.0的表,表示列存表的每列合并存储在一个文件中,文件名以relfilenode.C1.0命名,数据存储在本地盘。存算一体场景下,不指定colversion取值时,用户创建的列存表默认为V2表。
- V3表
V3表特指建表环节时,执行CREATE TABLE语法中定义的colversion取值为3.0的表,即存算分离表,表示列存表的每列合并存储在一个文件中,文件名以C1_field.0命名,数据存储在OBS文件系统。存算分离场景下,不指定colversion取值时,用户创建的列存表默认为V3表。
- 事务管理
在事务管理上,DWS采取了MVCC(多版本并发控制)结合两阶段锁的方式,其特点是读写之间不阻塞。DWS的MVCC没有将历史版本数据统一存放,而是和当前元组的版本放在了一起。DWS没有回滚段的概念,但是为了定期清除历史版本数据DWS引入了一个VACUUM进程。一般情况下用户不用关注它,除非要做性能调优。此外,DWS是自动提交事务。
- Node Group
节点组,这是数据库内核的一个基本概念,即每个集群节点就是一个Node,若干个Node组成一个Node Group,一个物理集群包含多个Node Group,每个Node Group封装成用户感知的形态,就是一个逻辑集群(Logical Cluster)。
- Logical Cluster
- Virtual Warehouse
以上三者的关系:Node Group是数据库内核的叫法,封装成产品,存算一体集群中,叫逻辑集群;存算分离集群中,叫计算组。