什么是数据仓库服务
数据仓库服务GaussDB(DWS)是一种基于基础架构和平台的在线数据分析处理数据库,提供即开即用、可扩展且完全托管的分析型数据库服务,兼容ANSI/ISO标准的SQL92、SQL99和SQL 2003语法,同时兼容PostgreSQL/Oracle/Teradata/MySQL等数据库生态,为各行业PB级海量大数据分析提供有竞争力的解决方案。
- 标准数仓(DWS 2.0):面向数据分析场景,为用户提供高性能、高扩展、高可靠、高安全、易运维的企业级数仓服务,支持2048节点、20PB级超大规模数据分析能力。支持冷热数据分析,存储、计算弹性伸缩,并按需、按量计价,为用户提供弹性灵活、极致性价比的体验。适用于“库、仓、市、湖”一体化的融合分析业务。
- IoT数仓:在标准数仓基础上,通过融合流、时序引擎,为用户提供实时数据接入和高并发实时分析能力。适用于物联网、IoT等实时分析场景。
- 实时数仓:在大规模数据查询和分析能力基础上,提供高并发、高性能、低时延的事务处理能力。适用于HTAP混合负载场景,“一库两用,生产即分析”。
产品架构
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和ODBC连接GaussDB(DWS) 。
- GaussDB(DWS)
一个GaussDB(DWS) 集群由多个在相同子网中的相同规格的节点组成,共同提供服务。集群的每个DN负责存储数据,其存储介质是磁盘。协调节点(Coordinator)负责接收来自应用的访问请求,并向客户端返回执行结果,此外,协调节点还负责分解任务,并调度任务分片在各DN上并行执行。
- 自动数据备份
支持将集群快照自动备份到EB级对象存储服务OBS(Object Storage Service)中,方便利用业务空闲期对集群做周期备份以保证集群异常后的数据恢复。
快照是GaussDB(DWS) 集群在某一时间点的完整备份,记录了这一时刻指定集群的所有配置数据和业务数据。
- 工具链
提供了数据并行加载工具GDS(General Data Service)、SQL语法迁移工具DSC(Database Schema Convertor)、SQL开发工具Data Studio、迁移工具GDS-Kafka,并支持通过控制台对集群进行运维监控。
集群逻辑架构
GaussDB(DWS)集群逻辑架构如图2所示。实例的详细介绍请参见表1。
名称 |
描述 |
说明 |
---|---|---|
CM |
集群管理模块(Cluster Manager)。管理和监控分布式系统中各个功能单元和物理资源的运行情况,确保整个系统的稳定运行。 |
CM由CM Agent、OM Monitor和CM Server组成。
GaussDB(DWS)提供了CM Server的主备实例方案,以保证集群管理系统本身的高可用性。正常情况下,CM Agent连接主CM Server,在主CM Server发生故障的情况下,备CM Server会主动升为主CM Server,避免出现CM Server单点故障。 |
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,请参见“集群绑定和解绑ELB”章节。 当前分布式事务框架下无法避免CN之间的互连,为了减少GTM上线程过多导致负载过大,建议CN配置数目≤10个。 GaussDB(DWS)通过CCN(Central Coordinator )负责集群内的资源全局负载控制,以实现自适应的动态负载管理。CM在第一次集群启动时,通过集群部署形式,选择编号最小的CN作为CCN。若CCN故障之后,由CM选择新的CCN进行替换。 |
DN |
数据节点(Datanode)。负责存储业务数据(支持行存、列存、混合存储)、执行数据查询任务以及向CN返回执行结果。 |
在集群中,DN有多个。每个DN存储了一部分数据。GaussDB(DWS)对DN提供了高可用方案:主DN、备DN、从备DN。三者的工作原理如下:
也就是说从备DN永远只作为从备使用,不会因为主DN或备DN故障而升级为主DN或备DN,从备DN只存放原主DN故障时,新升为主的DN同步到从备DN的Xlog数据和数据通道复制产生的数据。因此从备DN不额外占用存储资源,相比传统三副本节约了三分之一的存储空间。 |
Storage |
服务器的本地存储资源,持久化存储数据。 |
- |
集群的每个DN上负责存储数据,其存储介质也是磁盘。图3从逻辑上介绍了每个DN上都有哪些对象,以及这些对象之间的关系,其中:
- Database,即数据库,用于管理各类数据对象,各数据库间相互隔离。
- Datafile Segment,即数据文件,通常每张表只对应一个数据文件。如果某张表的数据大于1GB,则会分为多个数据文件存储。
- Table,即表,每张表只能属于一个数据库。
- Block,即数据块,是数据库管理的基本单位,默认大小为8KB。
数据有三种分布方式,可以在建表的时候指定:REPLICATION、ROUNDROBIN 、HASH。