【云驻共创】一文轻松了解华为GaussDB家族
1. 数据库简要介绍
数据库在企业中有着重要的地位和应用,华为 GaussDB 数据库在鲲鹏生态中是主力场景之一。数据库总体可以分为关系型数据库和非关系型数据库。
对于关系型数据库,有企业生产交易的 OLTP 数据库和企业分析的 OLAP 数据库。针对 OLTP 应用场景华为推出云数据库 GaussDB(for MySQL) 和 GaussDB(openGauss);OLAP 场景则推出数据仓库服务 GaussDB(DWS)。
对于非关系型数据库,目前 GaussDB(for Mongo) 和 GaussDB(for Cassandra)。
数据库技术革新正在打破现有秩序,云化,分部署,多模处理是未来主要趋势。本章重点介绍华为 GaussDB(for MySQL) 云数据库的特性和应用场景,并介绍部分应用案例。
2. 华为 GaussDB 数据库总览
联机事务处理(OLTP),存储/查询业务应用中活动的数据以支撑日常的业务活动;联机分析处理(OLAP):存储历史数据以支撑复杂的分析操作,侧重决策支持。GaussDB 数据库升级为全场景云服务,持续服务客户。
3. 关系型数据库产品介绍
华为 Cloud Native 数据库设计原则:
- 解耦,计算与存储分离,主从解耦。
- 近数据计算下推,IO 密集型负载下推到存储节点完成,比如:redo 处理,页重构。
- 充分列用云存储的能力,存储层实现独立容错和自愈服务,共享访问(单写多读)。
- 发挥 SSD 的优势,避免随机写带来的写放大,减少磨损,较少延时,充分利用 SSD 的随机读性能。
- 性能瓶颈已经从计算和存储转向网络,减少网络流量,采用新的网络技术和硬件,比如:RDMA。
3.1. GaussDB(for MySQL) 数据库
云数据库 GaussDB(for MySQL) 是华为自研的最新一代企业级高扩展海量存储分布式数据库,完全兼容 MySQL。
基于华为最新一代 DVF 存储,采用计算存储分离架构,128TB 的海量存储,无需分库分表,数据库 0 丢失,即拥有商业数据库的高可用和性能,又具备开源低成本效益。
兼容 MySQL,也就是对于原有 MySQL 应用无需任何改造。海量数据存储,也就是支持互联网业务的大数据量。
分布式高扩展,也就是自动化分库分表或者非分库分表,应用透明。
强一致事务,也就是支持分布式事务的强一致性。
高可用,也就是支持跨 AZ 高可用、跨 Region 容灾。
高并发性能,也就是支持大并发下的高性能。
非中间式架构,也就是非 DDM 类方案或者非 DRDS 那样。
综上所述,客户需要的是一款高性能、高扩展、易用、易运维、高可用、大数据的云数据库。
3.1.1. GaussDB(for MySQL) 云数据库概览
- 主节点,处理所有的写,写 WAL 日志(Redo)。
- 只读实例,处理只读请求,快速升主,快速增/删。
- 数据分区,数据页以 slice 组织,分布在各个 slice 服务,Slice 冗余保存,日志被 slice 分发。
- Slice 服务,单数据库可以分配多个 Slice,访问隔离,存储和处理日志记录,维护和重构数据页,服务数据页读请求。
3.1.2. GaussDB(for MySQL) 的架构和特点
- 极致可靠,数据 0 丢失,故障闪恢复,支持跨 AZ 高可用。
- 多维扩展,计算节点双向扩展,横向扩展(支持 1 写 15 读横向扩展),纵向扩展(在线弹性扩容,按需计费)。
- 海量存储,单实例扩容数据达 128T,无需分库分表,超低应用改造,业务急速上云。
- 创新自研,cloud-native 分布式数据库架构,基于华为最新一代 DFV 存储计算存储分离,保证扩展性价比;数据库逻辑下推存储,最小网络负载,极致性能。
- 卓越性能,性能最高提升至原生 MySQL 的 7 倍,100% 兼容 MySQL,业界领先。
- 尖端硬件,基于 V5 CPU+Optane DC SSD+RDMA 网络行业领先硬件组合,数据处理即稳又快。
3.1.3. SQL Nodes
3.1.4. 存储抽象层(SAL)
- 存储抽象层(SAL)是逻辑层。
- 将数据存储和 SQL 前端、事务、查询执行等进行隔离。
- 由在 SQL 节点上执行的公共日志模块和存储节点上执行的 slice 节点组成。
- SAL 将所有数据页属于{spaceID, pageID}划分为 slice。
- 横向扩展:随着数据库规模的增长,可用资源(存储、内存)随着 slice 的创建按比例增长。
- 数据本地化:数据密集型操作是存储节点上由 slice 服务执行。
3.1.5. GaussDB(for MySQL)数据库产品优势
核心优势包括,超高性能,高扩展性,高可靠性,高兼容性,超低成本。
GaussDB(for MySQL) 的超高性能得益于在内核和硬件方面的优化。内核方面不仅优化了Query Cache/Plan Cache、Innodb Lock Management以及Audit Plugin 效率,还去掉了 double write,当然活跃的社区共享的 Bug 修复也功不可没。硬件方面做了容器化、卸载了 Hi1822 还使用了 NVMe SSD 和 RDMA。
与传统添加只读副本时,需要同步数据不同。GuassDB(for MySQL)由于共享存储,只需要添加计算节点,无论多大的数据量,只需要五分钟左右,这样做的好处是横向扩展更快。GuassDB(for MySQL)的存储容量最大达 128T,它存储采用按需付费,不需要提前规划存储容量,减少了用户成本。
与传统添加只读副本时,需要同步数据不同。GuassDB(for MySQL)由于共享存储,只需要添加计算几点,无论多大的数据量,只需要五分钟左右,这样做以后横向扩展更快。
消除 Binlog 复制延迟,RTO 有保证,最终达到主备切换时间更快。
采用分布式存储后,存储容量最大达 128T,存储采用按需付费,不需要提前规划存储容量。减少用户成本。
存储层在不断的异步、分布式对日志进行推进, 数据库在 crash 后恢复更快。
专为 GaussDB(for MySQL) 引擎定制的分布式存储系统,极大提升数据备份和恢复性能。
AppendOnly WritePlace,数据天然按照多时间点多副本存储,快照秒级生成,支持海量快照,拥有强大的数据快照处理能力。
任意时间点快速回滚,这是基于底层存储系统的多时间点特性,不需增量日志回放,可直接实现按照时间点回滚。
并行高速备份、恢复,备份以及恢复逻辑下沉到各存储节点,本地访问数据并直接与第三方存储系统交互,高并发高性能。
通过异步数据拷贝+按需实时数据加载机制,GaussDB(for MySQL)实例可在数分钟内达到完整功能可用,完成快速实例恢复。
采用了共享 DFV 存储,Active-active 架构以及日志即数据架构,使得GaussDB(for MySQL)拥有更高性价比。共享 DFV 存储,与传统的 RDS for MySQL 相比,只有一份存储。添加一个只读节点时,只需添加一个计算节点,无需再额外购买存储。如果只读节点越多,节省的存储成本更多。Active-active 架构,与传统的 RDS for MySQL 相比,不再有备库的存在,所有的只读都是 actice 状态,并且承担读流量,使得资源利用率更高。日志即数据架构,与传统的 RDS for MySQL 相比,不再需要刷 page,所有的更新操作金记录日志,不再需要 double write。较少了宝贵的网络带宽。
3.1.6. GaussDB(for MySQL) 数据库实例规格
3.1.7. 解决行业痛点
GaussDB(for MySQL) 的极致可靠,数据0丢失,故障闪恢复的优势,解决了金融行业不能接受数据丢失,故障恢复秒级的痛点。
GaussDB(for MySQL) 的多为扩展,海量存储,解决了游戏行业无法预测用户流量以及产生的数据量,业务高峰时用户体验受到影响,设置要挺服扩容的痛点。
GaussDB(for MySQL) 的强悍性能支撑业务拓展,解决了SaaS 应用业务庞大,吞吐量很高,开源库无法解决,采取分库分表等复杂化方案和企业客户一般偏好使用商用数据库(SQL Server、Oracle),license 费用高的痛点。
3.2. GaussDB(openGauss)数据库
GaussDB(openGauss)是华为结合自身技术积累,推出的全新自研新一代企业级数据分布式数据库,支持集中式&分布式两种部署形态。在支撑传统业务的基础上,为企业面向 5G 时代的挑战,提供了无线可能。
3.2.1. GaussDB(openGauss)产品优势
- 高性能,支持高吞吐强一致性事务能力;
- 高可用,双活和两地三中心高可用;
- 集群内 HA,数据不丢失,业务秒级终端;
- 同城跨 AZ 容灾,数据不丢失,分钟级恢复;
- 两地三中心部署;
- 高扩展,容量和性能按需水平扩展;
- 256 节点扩展能力,卓越线性比;
- 在线扩容;
- 易管理,易迁移,易监控,运维;
- 兼容 SQL2003 标准语法+企业扩展包;
- 数据复制、监控运维、开发工具;
3.2.2. openGauss 集中式版本内核全开源
- 内部自用孵化阶段 -> 联创产品化阶段 -> openGauss 集中式版本开源
- 2001-2011 内部自用阶段
- 2011-2019 产品化阶段
- G 行核心数据仓库,GaussDB(DWS)华为云商用
- Z 行核心业务系统替换商业数据库
- 支撑公司 40+ 主力产品,在全球 70+ 运营商规模商用 3万+ 套,服务全球 20+ 亿人口
- 2011-2019 产品化阶段
- 2019.5.15 GaussDB 全球发布
- 构筑合作伙伴生态
- 兼容行业主流生态,完成金融等行业对接
- 2020~ 开源
- openGauss 集中式版本开源
3.2.3. openGauss 内核长期演进,回馈社区
3.2.4. openGauss 伙伴使能策略
openGauss 的内核完全开源,我们可以在 gitee 上直接查看完整的内核代码,下面是代码仓库首页截图以及与合作伙伴达成的共识。
- 培训:构建培训体系、开展内核技术沙龙、组建用户组
- 支持:社区支持团队
- 开发者生态:
- 共建开发者生态
- 推进高校课程,出书
3.2.5. GaussDB 主力华为消费云实现智慧化业务运营
- 业务诉求和挑战
- 华为消费者云大数据平台,集中存储和管理业务侧数据,采用 Hadoop+MPP 数据库混搭架构,面临如下挑战:
- 业务飞速发展,数据年增长 30% 以上
- 用户智慧化体验要求数据分析平台提供实时分析能力
- 支持自主报表开发和可视化分析
- 解决方案
- 按需弹性扩容支撑业务飞速发展
- SQL on HDFS 支持即席探索场景实时分析,Kafka 流数据告诉如恐惧支持实时报表生成
- 多租户负载管理和近似计算等关键技术,实现高效报表开发和可视化分析
- 客户收益
- 按需扩容,业务不中断
- 新的数据分析模型上线后,可实时获得分析结果,营销精准率提高 50% 以上
- 典型可视化报表查询分析相应时间从过去分钟级降至 5s 以内,报表开发周期从过去 2 周降至 0.5 小时
3.2.6. 金融互联网交易
- 适合中小银行互联网类交易系统,比如,移动 APP 类、网站类等,具备兼容业界主流商业数据库生态、高性能、安全可靠等特点,推荐主备形态
- 优势
- 安全可靠,支持 SSL 加密和 KMS 数据加密等功能,确保数据安全;支持数据库主备架构,主机故障时,备机自动升级成主机,确保业务连续性。
- 超高性能,低延时的事务处理能力,典型配置下 sysbench 新能数据库高出开源数据库 30% 到 50%。
3.3. GaussDB(DWS)概述
- 数据仓库服务,Data Warehouse Service,简称 GaussDB(DWS),是一种基于公有云基础架构和平台的在线数据处理数据库,提供即开即用、可扩展且完全托管的分析型数据库服务。GaussDB(DWS) 是基于华为云原生融合数据库仓库 GaussDB 产品的服务,兼容标准 ANSI SQL 99 和 SQL 2003,为各行业 PB 级海量大数据分析提供有竞争力的解决方案。
- GaussDB(DWS)可广泛应用于金融、车联网、政企、电商、能源、电信等多个领域,2017~2019 已连续三年入选 Gartner 发布的数据管理解决方案魔力象限,相比传统数据仓库,性价比提升数倍,具备大规模扩展能力和企业级可靠性。
3.3.1. GaussDB(DWS) 产品架构
- 分布式、按需扩展
- 分布式架构,组件主备/多活高可靠设计
- 存算分离,按需独立扩展
- 兼容标准 SQL,支持事务 ACID
- 兼容标准 SQL 2003
- 支持事务 ACID、数据强一致保证
- 软硬协同,性能提升 30%
- 支持 X86、ARM 平台服务器
- 基于鲲鹏芯片垂直优化。相比同代 X86 性能提升 30%
3.3.2. 逻辑架构
- CM
- 集群管理模块(Cluster Manager)
- 管理和监控分布式系统中各个功能单元和物理资源的运行情况,确保整个系统的稳定运行
- GTM
- 全局事务控制器(Global Transaction Manager)
- 提供全局事务控制所需的消息,采用过版本并发控制 MVCC 机制
- WLM
- 工作负载里管理器(Wordload Manager)
- 控制系统资源的分配,防止过量业务负载,对系统的冲击导致业务拥塞和系统崩溃
- Coordinator
- 整个系统的业务入口和结果返回
- 接收来自业务应用的访问需求
- 分解任务并调度任务分片的并行执行
- Data Node
- 执行查询任务分片的逻辑实体
- GDS Loader
- 并行数据加载,可配置多个
- 支持文本文件格式,错误数据自动识别
3.3.3. GaussDB(DWS)产品优势
- GaussDB(DWS) 与传统数据仓库相比,主要有一下特点与显著优势,可解决多行业超大规模数据处理与通用平台管理问题
- 易使用
- 一站式可视化便捷管理:通过使用 GaussDB(DWS) 管理控制台,完成应用程序与数据仓库的连接、数据备份、数据恢复、数据仓库资源和性能监控等运维管理工作
- 与大数据无缝集成:可以使用标准 SQL 查询 HDFS、OBS 上的数据,数据无需搬迁
- 提供一键式异构数据库迁移工具:提供配套的迁移工具,可支持 MySQL、Oracle 和 Terdata 的 SQL 脚本迁移到 GaussDB(DWS)
- 易扩展
- 按需扩展:Shared-Nothing 开放架构,可随时根据业务情况增加节点,扩展系统的数据存储能力和查询分析性能
- 扩容后性能线性提升:容量和性能随集群规模线性提升,线性比 0.8
- 扩容不中断业务:扩容过程中支持数据增、删、改、查,及 DDL 操作(Drop/Truncate/Alter table),表级别在线扩容技术,扩容期间业务不中断、无感知
- 高性能
- 云化分布式架构
- GaussDB(DWS) 采用全并行的 MPP 架构数据库,业务数据被分散存储在多个节点上,数据分析任务被推到数据所在位置就近执行,并行地完成大规模的数据处理工作,实现对数据处理的快速响应。
- 查询高性能,万亿数据秒级响应
- GaussDB(DWS) 后台通过算子多线程并行执行、向量化计算引擎实现指令在寄存器并行执行,以及 LLVM 动态编译减少查询冗余的条件逻辑判断,助力数据查询性能提升
- GaussDB(DWS) 支持行列混合存储,可以同时为用户提供更优的数据压缩比(列存)、更好的索引性能(列存)、更好的点更新和点查询(行存)性能
- 数据加载快
- GaussDB(DWS) 提供了 GDS 极速并行大规模数据加载工具
- 列存下的数据压缩
- 对于非活跃的早期数据可以通过压缩来减少空间占用,降低采购和运维成本
- 能够根据数据特征自适应选择压缩算法,平均压缩比7:1。压缩数据可直接访问,对业务透明,极大缩短历史数据访问的准备时间。
- 高可靠
- ACID:支持分布式事务 ACID(Atomicity, Consistency, Isolation, Durability),数据强一致保证
- 全方位 HA 设计:GaussDB(DWS) 所有的软件进程均有主备保证,集群的协调节点(CN),数据节点(DN)等逻辑组件全部由主备保证,能够保证在任意单点物理故障的情况下系统依然能够保证数据可靠、一致,同时还能对外提供服务
- 安全:GaussDB(DWS)支持数据透明加密,同时可与数据库安全服务(DBSS)对接,基于网络隔离及安全组规则,保护系统和用户隐私及数据安全。GaussDB(DWS)还支持自动数据全量、增量备份,提升数据可靠性
- 低成本
- 按需付费:GaussDB(DWS)按实际使用量和使用时长计算,您需要支付的费率很低,只需为实际消耗的资源付费
- 门槛低:您无需前期投入较多固定成本,可以从地规格的数据仓库实例起步,以后随时根据业务情况弹性伸缩所需资源,按需开支
3.4. Data Studio 工具加成
- Data Studio 图形化的集成开发环境,帮助数据库开发人员快捷地进行数据库开发
- Data Studio 提供了各种数据库开发调试功能:
- 创建和管理数据库对象(数据库,模式,表,视图,索引,函数和过程等)
- 数据库DML、DDL、DCL操作
- 创建、运行及调试 PL/SQL 过程
3.5. 应用场景-数据仓库迁移
3.6. 应用场景-大数据融合分析
3.7. 应用场景-增强型ETL和实时BI分析
3.8. 应用场景-实时数据分析
4. NoSQL 数据库产品介绍
4.1. NoSQL 概述
NoSQL,也称作“Not Only SQL”,“non-relational”。泛指区别于传统的关系型数据库的非关系型的数据库。
NoSQL 和关系型数据库,两者存在寻多显著的不同点,比如:
- NoSQL 不保证关系数据库的 ACID 特性
- NoSQL 不使用 SQL 作为查询语言
- NoSQL 数据存储可以不需要固定的表格模式
- NoSQL 也经常会避免使用 SQL 的 JOIN 操作等
NoSQL 具有易扩展、高性能等特点
4.2. 华为 NoSQL 数据库介绍
华为自主研发的计算存储分离架构的分布式多模 NoSQL 数据库服务,包括 GaussDB(for Mongo)、GaussDB(for Cassandra)、GaussDB(for Redis) 和 GaussDB(for Influx)这四款主流 NoSQL 数据库服务。
支持跨 3AZ 高可用集群,相比社区版具有分钟级计算扩容、秒级存储扩容、数据强一致、超低时延、高速备份恢复的优势。
具有高性价比,适用于 IoT、气象、互联网、游戏等领域。
4.3. GaussDB(for Mongo)
4.3.1. GaussDB(for Mongo)产品特点
采用存算分离的方式,存储层采用 DFV 高性能分布式存储,计算资源与存储资源按需独立扩展。
支持3~12节点分布式部署,容忍n-1节点故障,3副本数据存储,保障数据安全,做到了极致可用。
最大支持96T存储容量的海量存储。兼容 MongoDB 协议。
4.3.2. GaussDB(for Mongo):存储计算分离的技术创新
存储计算分离包括三个方面分别是,存储计算分别按需扩展,降低成本,基于共享存储,Rebalance 不迁移数据,3AZ容灾。
采用复制集卸载到分布式存储的技术后,减少了存储副本的数量,让所有 ShardServer 均可处理业务,分布式存储也是基于分片复制,能够更好的聚合IO性能和故障重构性能。
采用了 RocksDB 存储引擎技术,他是基于 LSMTree,相比 WT,写性能更好,使用本地SSD读Cache,也优化读性能。
采用基于快照的物理备份的技术,避免了逻辑备份dump数据,一次性能更好,并且可以具有明确的备份时间点。
实现了GaussDB(for Mongo) 的 On going ,不仅在基础设施、线程池、存储RDMS上做了新能优化,还对Auto Scaling 做优化使其可以自动根据业务负载扩缩容集群规模,降低用户50%以上成本,也做到了瞬时恢复、增量备份、表级备份、任意时间点恢复。
4.3.3. GaussDB(for Mongo)客户案例
GaussDB(for Mongo) 的高性价比,能够做到同等成本下3倍读写性能提升。这个性能也很好的支撑了江淮汽车的车联网场景,完美支持每秒近百万并发查询,响应及时,业务能够持续稳定运行,也做到了增效降本,同等并发相比基于 ECS 自建或者开源服务化的方案同等成本下提升三倍性能。
4.4. GaussDB(for Cassandra)
GaussDB(for Cassandra)是一款基于华为自主研发的计算存储分离架构的分布式云数据库服务。是一个强一致性的系统,在华为云高性能、高可用、高可靠、高安全、可弹性伸缩的基础上,提供了一键部署、备份恢复、监控报警等服务能力。高度兼容开源Cassandra接口,并提供高读写性能,具有高性价比,适用于IoT、气象、互联网、游戏等领域。
4.4.1. GaussDB(for Cassandra)产品优势
- 集群稳定无Full GC 问题
- 计算存储分离分钟级节点扩容秒级存储扩容
- Active-Active 分布式架构N-1个节点故障容忍
- 高性能性能数倍于社区版
- 海量数据单套实例最大100TB数据
- 高可靠分钟级备份恢复数据强一致性
4.4.2. GaussDB(for Cassandra)产品特性
- 弹性扩展
- 超强读写
- 高可用&故障容忍
- 强一致性
- CQL 语言
- 无Full GC问题
- 计算存储分离
4.4.3. 客户案例-工业制造&气象
- 大规模集群部署:使用于工业制造和气象业海量数据存储的场景
- 高可用易扩展:基于一致性哈希的安全P2P架构,保障业务高可用、节点易扩展
- 实时高并发写入:7*24小时多传感器终端数据实时写入
- 分钟级扩容:应对作业/项目高峰
5. 总结
本次主要介绍了数据库的特性,华为关系型数据库GaussDB(for MySQL)数据库、GaussDB(openGaudd)与华为GaussDB(DWS)数据库,了解 NoSQL 数据库的产品特性和业务价值,包括 GaussDB(for Mongo)和GaussDB(for Cassandra)。GaussDB 家族将服务会越来越来的用户,会有越来越多的用户收益于GaussDB 家族。
本文整理自华为云社区【内容共创系列】活动。
查看活动详情:https://bbs.huaweicloud.com/blogs/314887
相关任务详情:华为数据库产品 GaussDB 介绍
- 点赞
- 收藏
- 关注作者
评论(0)