什么是数据仓库服务
数据仓库服务GaussDB(DWS) 是一种基于华为云基础架构和平台的在线数据处理数据库,提供即开即用、可扩展且完全托管的分析型数据库服务。GaussDB(DWS)是基于融合数据仓库GaussDB产品的云原生服务 ,兼容标准ANSI SQL 99和SQL 2003,同时兼容PostgreSQL/Oracle数据库生态,为各行业PB级海量大数据分析提供有竞争力的解决方案。
产品架构
GaussDB(DWS) 基于Shared-nothing分布式架构,具备MPP (Massively Parallel Processing)大规模并行处理引擎,由众多拥有独立且互不共享的CPU、内存、存储等系统资源的逻辑节点组成。在这样的系统架构中,业务数据被分散存储在多个节点上,数据分析任务被推送到数据所在位置就近执行,并行地完成大规模的数据处理工作,实现对数据处理的快速响应。
- 应用层
数据加载工具、ETL(Extract-Transform-Load)工具、以及商业智能BI工具、数据挖掘和分析工具,均可以通过标准接口与GaussDB(DWS) 集成。GaussDB(DWS)兼容PostgreSQL生态,且SQL语法进行了兼容Oracle和Teradata的处理。应用只需做少量改动即可向GaussDB(DWS)平滑迁移。
- 接口
支持应用程序通过标准JDBC 4.0和ODBC 3.5连接GaussDB(DWS) 。
- GaussDB(DWS)(MPP大规模并行处理集群)
一个GaussDB(DWS) 集群由多个在相同子网中的相同规格的节点组成,共同提供服务。集群的每个DN负责存储数据,其存储介质是磁盘。协调节点(Coordinator)负责接收来自应用的访问请求,并向客户端返回执行结果,此外,协调节点还负责分解任务,并调度任务分片在各DN上并行执行。
- 自动数据备份
支持将集群快照自动备份到EB级对象存储服务OBS(Object Storage Service)中,方便利用业务空闲期对集群做周期备份以保证集群异常后的数据恢复。
快照是GaussDB(DWS) 集群在某一时间点的完整备份,记录了这一时刻指定集群的所有配置数据和业务数据。
- 工具链
提供了数据并行加载工具GDS(General Data Service)、SQL语法迁移工具DSC(Database Schema Convertor)、SQL开发工具Data Studio,并支持通过控制台对集群进行运维监控。
集群逻辑架构
GaussDB(DWS)集群逻辑架构如图2所示。实例的详细介绍请参见表1。
名称 |
描述 |
说明 |
---|---|---|
GTM |
全局事务管理器(Global Transaction Manager),负责生成和维护全局事务ID、事务快照、时间戳等全局唯一的信息。 |
整个集群只有一组GTM:主、备GTM各一个。 |
WLM |
工作负载管理器(Workload Manager)。控制系统资源的分配,防止过量业务负载对系统的冲击而导致业务拥塞和系统崩溃。 |
不同于集群中的实例(GTM、CM、CN、DN)模块,不需要在安装过程中指定主机名称。安装程序会自动在各主机上安装此模块。 |
CN |
协调节点(Coordinator)。负责接收来自应用的访问请求,并向客户端返回执行结果;负责分解任务,并调度任务分片在各DN上并行执行。 |
集群中,CN有多个并且CN的角色是对等的(执行DML语句时连接到任何一个CN都可以得到一致的结果)。只需要在CN和应用程序之间增加一个负载均衡器,使得CN对应用是透明的。CN故障时,由负载均衡自动路由连接到另外一个CN。 当前分布式事务框架下无法避免CN之间的互连,为了减少GTM上线程过多导致负载过大,建议CN配置数目≤10个。 GaussDB(DWS)通过CCN(Central Coordinator )负责集群内的资源全局负载控制,以实现自适应的动态负载管理。CM在第一次集群启动时,通过集群部署形式,选择编号最小的CN作为CCN。若CCN故障之后,由CM选择新的CCN进行替换。 |
DN |
数据节点(Datanode)。负责存储业务数据(支持行存、列存、混合存储)、执行数据查询任务以及向CN返回执行结果。 |
在集群中,DN有多个。每个DN存储了一部分数据。如果DN无高可用方案,则故障时会导致该实例上的数据无法访问。 |
Storage |
服务器的本地存储资源,持久化存储数据。 |
- |
集群的每个DN上负责存储数据,其存储介质也是磁盘。图3从逻辑上介绍了每个DN上都有哪些对象,以及这些对象之间的关系,其中:
- Database,即数据库,用于管理各类数据对象,各数据库间相互隔离。
- Datafile Segment,即数据文件,通常每张表只对应一个数据文件。如果某张表的数据大于1GB,则会分为多个数据文件存储。
- Table,即表,每张表只能属于一个数据库。
- Block,即数据块,是数据库管理的基本单位,默认大小为8KB。
数据有三种分布方式,可以在建表的时候指定:REPLICATION、ROUNDROBIN 、HASH。