数据库教程FGMT83:国产数据库-华为高斯GaussDB(DWS)数据库培训(PB级超大规模分布式数据仓库平台)

举报
风哥数据库教程 发表于 2026/11/10 14:54:58 2026/11/10
【摘要】 数据库教程FGMT83:国产数据库-华为高斯GaussDB(DWS)数据库培训(PB级超大规模分布式数据仓库平台)本套风哥教程基于华为高斯 GaussDB(DWS) 分布式数据仓库平台,面向运维人员、数据库工程师与开发人员,覆盖产品架构、部署方案、集群安装配置与日常维护管理全流程。风哥教程本文所有命令均在 64GB 内存、8 vCPU 的双节点实验环境(主机名 fgedu-net-cn1、f...

数据库教程FGMT83:国产数据库-华为高斯GaussDB(DWS)数据库培训(PB级超大规模分布式数据仓库平台)

本套风哥教程基于华为高斯 GaussDB(DWS) 分布式数据仓库平台,面向运维人员、数据库工程师与开发人员,覆盖产品架构、部署方案、集群安装配置与日常维护管理全流程。风哥教程本文所有命令均在 64GB 内存、8 vCPU 的双节点实验环境(主机名 fgedu-net-cn1、fgedu-net-cn2)下验证,安装根目录统一为 /fgedudb,数据库名、实例名均为 fgedudb,业务用户名为 fgedu。

一、前言与教程内容大纲介绍

在企业数字化进入深水区之后,业务系统沉淀下来的明细数据已经从 TB 级走向 PB 级。传统的单机关系型数据库在面对亿级行表的多维聚合、大表关联、年度报表与实时决策时,往往会出现 CPU 打满、内存不足、查询跑批数小时仍无法出结果的瓶颈。华为高斯 GaussDB(DWS) 正是为解决这一类超大规模分析型负载而设计的 MPP(Massively Parallel Processing,大规模并行处理)分布式数据仓库平台,它把一张逻辑上的大表水平拆分到多个数据节点上,让查询任务被推送到数据所在位置就近并行执行,从而把"一台机器扛全部"变成"一群机器一起算"。

风哥教程本文的定位是一套可以直接对照操作的工程化教程,而不是产品宣传材料。风哥在编写过程中刻意弱化市场表述,把笔墨集中在架构原理与可落地的命令操作上。本套风哥教程的内容比例遵循"少量理论打底、大量实战落地"的原则:前言与大纲介绍约占全篇的 5%,体系架构与原理理论约占 30%,环境准备、安装配置、日常维护等实战操作约占 60%,最后由风哥针对本文做总结约占 5%。

风哥教程本文的内容大纲如下,共分为四大板块:

第一板块,华为高斯 GaussDB 数据库基础架构,包括 GaussDB 数据库产品介绍、GaussDB(DWS) 数据库介绍、GaussDB(DWS) 数据库应用场景、GaussDB(DWS) 数据库应用案例、GaussDB(DWS) 数据库技术特点、GaussDB(DWS) 数据库体系架构六个知识点。

第二板块,华为高斯 GaussDB 数据库部署方案与环境准备,包括硬件规格选型、操作系统基线、内核与资源参数、数据库用户与目录规划、节点互信与时间同步、集群部署 XML 规划。

第三板块,华为高斯 GaussDB 数据库集群安装配置,包括安装包上传与解压、操作系统预检查、集群 XML 配置编写、gs_install 静默安装、集群初始化与S首启动、集群状态核验。

第四板块,GaussDB(DWS) 数据库日常维护管理,包括 GaussDB(DWS) 数据库日常检查、GaussDB(DWS) 集群启动停止与基本维护、GaussDB(DWS) 认证配置与远程登录、GaussDB(DWS) 集群参数修改、GaussDB(DWS) 集群表的创建与使用。

需要提前说明的是,风哥教程本文的实验环境为两个节点(fgedu-net-cn1、fgedu-net-cn2),主要用于讲清安装、启停、认证、参数与建表的操作链路;生产环境出于高可用考虑,CN/DN 通常采用三副本主备从部署,节点数一般不少于三,这一点在后续架构理论与实战注释中风哥会反复提示。

二、GaussDB 数据库基础架构(理论部分)

2.1 GaussDB 数据库产品介绍

GaussDB 是华为自主研发的企业级数据库产品族,理解 GaussDB(DWS) 之前,必须先厘清 GaussDB 家族的产品分层,否则很容易把 openGauss、GaussDB(分布式事务版)与 GaussDB(DWS) 混为一谈。

GaussDB 产品族大致可以分为四条产品线。第一条是开源单机/主备内核 openGauss,它以 PostgreSQL 内核为基础做了大量增强,采用木兰宽松许可证,常用于自建开源数据库与二次开发。第二条是面向 OLTP(联机事务处理)的 GaussDB 分布式版,强调分布式事务、强一致、高并发短事务,支撑银行核心系统这类"写得多、单次小"的业务。第三条就是本套风哥教程的主角 GaussDB(DWS),DWS 是 Data Warehouse Service 的缩写,即数据仓库服务,它面向 OLAP(联机分析处理)与混合负载,强调大表扫描、多维聚合、批量加载与 PB 级扩展。第四条是云原生的 GaussDB(for MySQL)、GaussDB(for Redis)、GaussDB(for Mongo) 等托管型兼容产品,分别兼容 MySQL、Redis、MongoDB 协议。

风哥在这里强调一个判断标准:OLTP 看"事务吞吐与点查",OLAP 看"扫描吞吐与并行聚合"。选型错配是很多项目翻车的根源——把 DWS 当成高频交易库去写短事务,或者把 OLTP 库当成数仓去跑年度大报表,都会事倍功半。

2.2 GaussDB(DWS) 数据库介绍

GaussDB(DWS) 是一款具备分析及混合负载能力的分布式数据库,支持 x86 与鲲鹏(Kunpeng)硬件架构,支持行存储与列存储,提供 PB 级数据分析能力、多模分析能力与实时处理能力,用于数据仓库、数据集市、实时分析、实时决策与混合负载(HTAP)等场景。

在 SQL 兼容性上,GaussDB(DWS) 兼容 ANSI/ISO 标准的 SQL92、SQL99、SQL2003 语法,同时兼容 PostgreSQL、Oracle、Teradata、MySQL 等数据库生态。这意味着迁移成本主要落在方言改写与函数映射上,而不是推倒重来。它内置了 SQL 语法迁移工具 DSC(Database Schema Convertor)、数据并行加载工具 GDS(General Data Service)、SQL 开发工具 Data Studio,以及基于 OBS 对象存储的集群快照自动备份能力。

从部署形态看,GaussDB(DWS) 既可以在华为云上以托管服务形式开通,也支持物理机/私有化本地部署。本套风哥教程采用的是离线私有化部署路线,因为风哥的学员大量来自金融、政府、运营商等要求数据不出内网的单位,离线安装是必须掌握的能力。

风哥 itpux-com

2.3 GaussDB(DWS) 数据库应用场景

结合大纲,DWS 的典型应用场景可以归纳为四类。

第一类是详单查询。运营商、银行、电商每天产生海量通话详单、交易流水、订单明细,单表往往达到数十亿行,按手机号、账户、时间区间做条件检索与汇总,是 DWS 最经典的主战场。这类场景要求单列高吞吐扫描与列存压缩。

第二类是企业数据仓库。把各业务系统的 ETL 结果统一汇入数仓,在 DWS 上建设 ODS、DWD、DWS、ADS 分层,支撑财务报表、经营分析、BI 可视化,这是 MPP 数仓的标准用途。

第三类是混合负载(HTAP)。同一套集群既要承接一定量的实时写入与小查询,又要跑批量分析,DWS 通过 WLM 工作负载管理与资源池隔离不同负载,避免大查询把在线会话拖垮。

第四类是大数据分析与实时决策。配合 GDS、Kafka 接入与实时入库能力,对日志、IoT 设备流、用户行为流做近实时分析,支撑风控、推荐、实时大屏等场景。

2.4 GaussDB(DWS) 数据库应用案例

在行业落地上,GaussDB(DWS) 广泛应用于金融、泛政府、电信、交通、能源、医疗与电商。国有大型商业银行、头部保险公司、省级运营商、电力调度与政务大数据平台是其主要客户群体。这些案例的共同特征是:数据量大、合规要求高、不能接受数据出域、对查询结果的时效性有明确 SLA。风哥在教学中通常会提醒学员,案例只能说明"能力被验证过",不能直接照搬容量,真正的容量评估必须回到自身数据规模、增量速率、查询并发与保留周期上做测算。

2.5 GaussDB(DWS) 数据库技术特点

GaussDB(DWS) 的技术特点可以从五个维度理解。

其一,MPP 大规模并行处理引擎。集群由众多拥有独立且互不共享 CPU、内存、存储资源的逻辑节点组成,即 s-hared-nothing(无共享)架构。业务数据被水平分布到多个节点,查询计划被切片下发到各节点并行执行,最后由协调节点汇聚结果。

其二,行列双存储。行存表适合点查与频繁更新,列存表把同一列的数据连续存放、配合压缩与向量化执行,适合大表扫描与聚合。DWS 还支持 H-Store 存储引擎面向高吞吐实时写入做优化。

其三,高可用主备从三副本机制。每个 DN 采用主、备、从备结构:主备同步期间主 DN 故障,备 DN 升主;新主会把日志同步到从备;原主恢复后以从备日志补齐数据并降回备。从备不额外占存储,相比传统三副本节约约三分之一存储空间。

风哥教程 113257174

其四,资源管理与工作负载隔离。以资源池(Resource Pool)为资源承载单位,为不同业务创建不同资源池并配置 CPU、内存、IO、存储占比,再把数据库用户绑定到资源池,实现业务间资源隔离,配合 CCN(中央协调节点)做全局自适应负载控制。

其五,弹性扩展与湖仓一体。存算一体架构下增加节点即可水平扩容;存算分离架构把数据放到 OBS,计算节点独立伸缩,并支持外部表、数据湖格式读写与内外表关联。

2.6 GaussDB(DWS) 数据库体系架构

这一节是理论部分的核心,风哥把集群逻辑架构里的六个模块逐一讲清楚,后面实战里的每一条命令都能对应回这些模块。

CM(Cluster Manager,集群管理模块):管理和监控集群中各功能单元与物理资源的运行情况,保证系统稳定。CM 由 CM Agent、OM Monitor、CM Server 组成。CM Agent 部署在每台主机上,监控本机主备 GTM、CN、主备 DN 的状态并上报 CM Server,同时执行 CM Server 下发的仲裁指令;OM Monitor 是看护 CM Agent 的定时任务,CM Agent 异常停止时负责把它拉起;CM Server 根据上报状态判定是否需要修复并下发指令,且提供主备双实例,主 CM Server 故障时备库主动升主,避免管理面单点。

GTM(Global Transaction Manager,全局事务管理器):生成并维护全局事务 ID、事务快照、时间戳等全局唯一信息。整个集群只有一组 GTM,主、备各一个。

WLM(Workload Manager,工作负载管理器):控制系统资源分配,防止过量负载冲击导致业务拥塞与系统崩溃。WLM 不需要在安装时指定主机,安装程序自动在各主机部署。

CN(Coordinator,协调节点):接收应用请求并返回结果,负责分解任务、调度任务分片在各 DN 上并行执行。集群中多个 CN 角色对等,连接任意 CN 执行 DML 都能得到一致结果;CN 与应用之间通常加负载均衡器实现透明访问,CN 故障时由负载均衡把连接路由到其他 CN。分布式事务框架下 CN 之间无法完全避免互连,建议 CN 数量不超过 10 个。CM 在S首启动时选择编号最小的 CN 作为 CCN(Central Coordinator,中央协调节点),CCN 故障后由 CM 重新选替。

DN(Datanode,数据节点):负责存储业务数据(行存、列存、混合)、执行查询任务并向 CN 返回结果。每个 DN 只存一部分数据,采用主、备、从备高可用结构。

Storage(存储):服务器本地存储资源,持久化保存数据。存算一体架构下数据在 DN 本地盘;存算分离架构下本地盘只做缓存与元数据,用户数据落在 OBS。

从数据库逻辑对象看,一个 Cluster 下有多个相互隔离的 Database;每张 Table 只属于一个 Database;每张表通常对应一个或多个 Datafile Segment(单表超过 1GB 会拆成多个数据文件);数据库管理的最小单位是 Block,默认大小 8KB。

数据有三种分布方式,在建表时通过 DISTRIBUTE BY 指定:HAs-h(按分布列哈希取模把行散列到各 DN,最常用,要求分布列高基数以避免倾斜)、REPLICATION(每个 DN 都存一份完整副本,适合小维表,换取关联时免数据重分布)、ROUNDROBIN(轮询分发,行依次落到不同 DN,适合无合适分布列的中间结果表)。

物理架构上分存算一体(s-hared-nothing,数据在 DN 本地盘)与存算分离(s-hared-data,数据在 OBS,本地盘做缓存)两类。逻辑上还可以基于 Node Group 机制划分逻辑集群(VW,Virtual Warehouse),把物理节点切给不同业务使用,进一步隔离资源。

2.7 分布式 SQL 执行原理

理解架构之后,还要理解一条 SQL 在集群里是怎么跑起来的,这是后面看执行计划、做调优的基础。

应用把 SQL 发给 CN。CN 上的优化器先做语法解析、语义分析与代价估算,生成一棵分布式执行计划树。这棵计划树会被切片下发到各个 DN:扫描、过滤、本地聚合这类算子在数据所在的 DN 上并行执行;当关联键与两表分布列不一致时,数据需要在节点间流动,这一步由 Streaming 算子完成。

Streaming 主要有三种形态。第一种是重分布(Redistribute / Has-hMove),两表都按不同列哈希分布做关联时,按关联键重新哈希把数据搬到对应 DN。第二种是广播(Broadcast),把小表完整复制到每个 DN,适合小维表关联大事实表,避免大表移动。第三种是本地聚合(Local Aggregation),各 DN 先做部分聚合,CN 再做最终聚合,减少跨节点传输量。

风哥数据库教程 itpux-com

CN 在执行末尾负责汇聚各 DN 的结果并返回给客户端。写事务(INSERT/UPDATE/DELETE)在 GTM 的全局事务协调下采用两阶段提交:各 DN 先 prepare,全部成功再 commit,任一失败则整体回滚,保证分布式事务的原子性。这也是为什么 CN 数量不宜过多——每个分布式事务都要在节点间协调,CN 过多会放大 GTM 与互连开销。

代价估算的输入是统计信息,所以大批量加载后必须 ANALYZE,否则优化器拿到的是旧行数,容易选错广播或重分布,造成数据倾斜与性能塌方。

2.8 存储引擎与压缩

行存表把一条记录的所有字段连续存放,适合点查、频繁更新与事务型负载;列存表把同一列的值连续存放,同一列数据类型一致,压缩率高,并且扫描时只读需要的列,配合向量化执行一次处理一批数据,非常适合大表扫描、分组聚合与报表。DWS 的列存压缩提供 low/middle/high 等档位,档位越高压缩比越大,但解压 CPU 开销也越高,需要在存储成本与查询速度间权衡。

存算分离版本的 H-Store 存储引擎面向高吞吐实时写入做了优化,兼顾大批量导入与高频小写入;数据落在 OBS 后,DN 本地盘只做缓存与元数据,计算节点可以独立扩缩,不必与存储等比例扩容,历史数据也无需为扩容而迁移。

2.9 弹性扩容与高可用原理

存算一体架构扩容时,新增 DN 加入集群,原有数据按新的节点数重新哈希分布(再平衡),扩容过程对业务有一定影响,一般在业务低峰滚动执行。高可用方面,每个 DN 的主、备、从备通过日志同步保持一致:主备实时同步,主故障备升主,新主再把增量日志同步给从备;原主恢复后以从备日志补齐缺失数据并降为备。从备只存补齐用的 Xlog 与复制通道数据,不额外全量存一份,因此比传统三副本节省约三分之一存储。CM 负责故障判定与仲裁,主备 CM Server 自身也做高可用,避免管理面单点。

2.10 选型对比与适用边界

风哥在这一节把 GaussDB(DWS) 与常见替代方案做客观对比,不做优劣宣传,只讲适用边界。

与传统单机关系型数据库相比,单机库擅长高频短事务与点查,纵向扩容受单机 CPU、内存、磁盘上限约束,数据量达到数 TB 后大表聚合明显吃力;DWS 把数据水平拆分到多节点横向扩展,扫描与聚合并行,适合 TB 到 PB 级分析,但并不追求单条事务的JZ低延迟。二者不是替代关系,OLTP 系统通过 ETL 或实时同步把明细送入 DWS 做分析,是最常见的组合。

与开源 MPP(如 Greenplum)相比,DWS 的优势在于国产化合规、与鲲鹏/x86 双栈适配、主备从高可用、资源池隔离与华为生态工具链(GDS、DSC、Data Studio、OBS 备份);开源方案则在社区自由度上更灵活。选型时要把合规要求、现有技术栈、运维团队能力、授权成本一起评估。

与云原生数仓存算分离方案相比,私有化部署的存算一体集群数据不出内网、延迟可控,但扩容需要等比例增配;存算分离把数据放对象存储,计算弹性更强,适合波峰波谷明显、希望按计算量付费的场景。本套风哥教程演示的是私有化存算一体离线部署,原因是教学环境不依赖云对象存储,命令链路更通用。

网上搜索风哥教程可以学习全套数据库教程

适用边界要讲清楚:DWS 不适合作为高并发在线交易库,不适合频繁单行点查的业务,也不适合把它当成通用 KV 或文档库;它的主场是大表扫描、多维聚合、批量加载、报表与混合负载。判断一个业务该不该上 DWS,看三件事:数据规模是否到了单机扛不住、查询是否以聚合扫描为主、是否能接受分布式事务的协调开销。


三、部署方案与环境准备(实战操作)

从本节开始进入实战。本套风哥教程的所有配置参数均按 64GB 内存、8 vCPU 的规格给出,实验节点为 fgedu-net-cn1 与 fgedu-net-cn2,操作系统以 RHEL/openEuler/Kylin 兼容系为主,安装根目录统一使用 /fgedudb,数据库名与实例名使用 fgedudb,业务用户名使用 fgedu,数据库默认监听端口 8000。

3.1 硬件与拓扑规划

双节点实验拓扑如下:

节点 主机名 管理业务 IP 内部通信 IP vCPU 内存 角色
节点 1 fgedu-net-cn1 192.168.10.11 10.0.0.11 8 64GB CN + DN(主)
节点 2 fgedu-net-cn2 192.168.10.12 10.0.0.12 8 64GB CN + DN(备)

说明:生产环境每个 DN 都应配主、备、从备,且主备从分布在不同故障域,节点数不少于三;双节点仅用于教学演示安装与维护链路。内部通信网络建议使用独立万兆/二十兆 GE 网络,避免业务流量与数据复制流量争抢。

磁盘规划建议(/fgedudb 下):

/fgedudb/software        安装包与解压目录
/fgedudb/data             数据目录(DN 数据文件,建议独立挂载盘)
/fgedudb/log              运行日志与 pg_log
/fgedudb/backup           本地备份临时目录
/fgedudb/toolkit          脚本与工具存放

64GB 内存的资源分配思路:操作系统与缓存预留约 4GB,DN 可用进程内存(max_process_memory)按约 58GB 规划,s-hared_buffers 取物理内存的 25% 左右即约 16GB,work_mem 按并发会话与排序复杂度估算,后续参数章节风哥会给出具体取值。

3.2 操作系统基线配置

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。