一起来了解GaussDB (DWS)【玩转PB级数仓GaussDB(DWS)】
1、GaussDB介绍
数据仓库服务GaussDB(DWS) 是一种基于华为云基础架构和平台的在线数据处理数据库,提供即开即用、可扩展且完全托管的分析型数据库服务。GaussDB(DWS)是基于华为融合数据仓库GaussDB产品的云原生服务 ,兼容标准ANSI SQL 99和SQL 2003,同时兼容PostgreSQL/Oracle数据库生态,为各行业PB级海量大数据分析提供有竞争力的解决方案。
2、GaussDB产品架构
GaussDB(DWS)由数据库内核部分及一系列相关工具组成,其产品架构如图所示。
GaussDB(DWS)支持标准ANSI SQL,用户可通过GaussDB(DWS)提供的客户端工具或JDBC、ODBC接口与其进行交互。通过JDBC、ODBC和PLSQL等接口,客户可以针对自身业务进行定制开发。
GaussDB(DWS)采用Shared-nothing的MPP(Massively Parallel Processing)架构,整个集群由多个拥有独立且互不共享CPU、内存、存储等系统资源的逻辑节点组成。在这样的系统架构中,业务数据被分散存储在多个物理节点上,数据访问任务被推送到数据所在位置就近执行,通过控制模块的协调,并行地完成大规模的数据处理工作,实现对数据处理的快速响应。
GaussDB(DWS)支持行列混合存储和向量化执行,可同时满足高并发TP和分析AP业务的需要。
GaussDB(DWS)提供了数据迁移/备份,数据导入导出等多种数据管理工具,可以快速、方便地在不同数据库之间、GaussDB(DWS)的不同集群之间转移数据,为用户升级、扩展、替换、备份数据库系统提供有力地保障。
GaussDB(DWS)提供可视化的集群管理界面,可以一键部署、升级、扩容。用户可通过管理控制界面实时查看数据库状态,统计运行数据,分析数据库性能。
3、GaussDB(DWS)技术特点
- 高性能
通过列存储、向量化执行引擎、分布式查询处理等关键技术,实现百亿数据量查询秒级响应。
- 高可靠
-分布式架构,多副本冗余存储。
-硬件故障自动检测和切换,集群内所有组件无单点问题。
- 高扩展
-集群最大可扩展至2048个节点,支撑PB级数据管理能力。
-集群规模按用户需求弹性伸缩,扩展业务不中断,减少用户投资成本。
- 开放兼容
-支持通用x86架构和ARM架构服务器,支持主流Linux 操作系统,包括SUSE Linux,Redhat,CentOS,EulerOS等。
-支持标准的SQL92/SQL2003规范,支持客户应用系统平滑迁移。
-支持Hadoop分布式文件系统HDFS、华为OBS对象存储等多种存储方式,方便海量存储扩展和大数据分析。
4、GaussDB(DWS)核心技术
GaussDB(DWS)采用分布式shared-nothing集群架构,支持行列混合存储计算,集成高可用、高可靠、高安全、高可扩展、智能化技术栈。
4.1、Shared-nothing架构
GaussDB(DWS)各个数据库实例(DN)拥有自己的CPU、内存和存储空间,实例之间不共享系统资源。
基于Shared-nothing/MPP的对等并行计算模型可以充分利用CPU/IO/Mem等资源,获得极致的运算性能和线性的可扩展性,从而支持PB级数据规模。
4.2、分布式存储
GaussDB(DWS)采用水平分表的方式,将数据表格的元组按照一定的分布策略分散存储到多个节点。查询的时候可以通过查询条件过滤不必要的数据,快速定位到数据存储位置,从而极大提升数据库性能。
在水平分表的基础上,GaussDB(DWS)支持数据分区(Partition),即根据表的一列或者多列,将要插入表的记录分为不重叠的若干个范围,为每个范围创建一个分区,用来存储相应的数据。
下表描述了在不同场景下,基于时间分片的方式分区后带来的收益。
场景描述 |
收益 |
当表中访问率较高的行位于一个单独分区或少数几个分区时。 |
大幅减少搜索空间,从而提升访问性能。 |
当需要查询或更新一个分区的大部分记录时。 |
仅需要连续扫描对应分区,而非扫描整个表,因此可大幅提升性能。 |
当需要大量加载或者删除的记录位于一个单独分区或少数几个分区时。 |
可直接读取或删除对应分区,从而提升处理性能;同时由于避免大量零散的删除操作,可减少清理碎片工作量。 |
数据分区带来的好处如下:
- 改善可管理性
利用分区,可以将表和索引划分为一些更小、更易管理的单元。这样,数据库管理员在进行数据管理时就能采取“分而治之”的方法。 有了分区,维护操作可以专门针对表的特定部分执行。
- 可提升删除操作的性能
删除数据时可以删除整个分区,与分别删除每行相比,这种操作非常高效和快速。
- 改善查询性能
通过限制要检查或操作的数据数量,分区可带来许多性能优势,包括:
-分区剪枝:
分区剪枝(也称为分区消除)是CN在执行时过滤掉不需要扫描的分区,只对相关的分区进行扫描的技术。分区剪枝通常可以将查询性能提高若干数量级
-智能化分区联接:
通过使用一种称为智能化分区联接的技术,分区还可以改善多表联接的性能。当将两个表联接在一起,并且至少其中一个表使用联接键进行分区时,可以应用智能化分区联接。智能化分区联接将一个大型联接分为多个较小的联接,这些较小的联接包含与联接的表“相同”的数据集。这里,“相同”定义为恰好包含联接的两端中相同的分区键值集,因此可以确保只有这些“相同”数据集的联接才会有效,而不必考虑其他数据集。
4.3、全并行计算
GaussDB(DWS)实现了一套高效能的分布式执行引擎,充分利用集群中各节点的资源,发挥并行计算的极致性能。
GaussDB(DWS)的全并行计算核心技术如下:
- MPP节点并行
分布式执行框架,VPP用户态TCP协议,支持>1000服务器,万级CPU核并行计算。
- SMP(Symmetric Multi-Processing)算子并行
采用多线程并行算法执行同一个SQL,充分利用多核CPU资源,支持众核(>64 cores),NUMA架构优化。
- SIMD(Single Instruction Multiple Data)指令级并行
一个指令执行一批数据的操作,支持X86,ARM指令。
- LLVM(Low Level Virtual Machine)动态编译
将热点函数预编译成机器码,减少SQL执行指令数,提升性能。
4.4、行列混合存储与向量化执行
GaussDB(DWS)实现了行存储和列存储两种存储引擎,用户可以根据应用场景在建表时选择合适的存储方式。
其中列存储引擎支持数据压缩,对于非活跃的早期数据可以通过压缩来减少空间占用,降低采购和运维成本。压缩方式支持Delta Value Encoding、Dictionary、RLE 、LZ4、ZLIB等压缩算法,且能够根据数据特征自适应的选择压缩算法,平均压缩比7:1。压缩数据可直接访问,对业务透明,极大缩短历史数据访问的准备时间。
GaussDB(DWS)的向量化执行引擎一次处理一批元组,极大提升处理效率。支持行列存混合处理,当查询数据同时包括行存表和列存表时,支持行列两种引擎的自动转换,达到性能的最优化。
4.5、主备从HA技术
传统的两副本策略(一主一备)的容错能力较差,节点发生故障后,为了服务可用性,一般都会选择让正常节点继续提供服务,在故障节点恢复前数据只有单副本运行。一旦正常主机再次发生故障,将造成数据丢失的严重后果。三副本策略可以避免这一问题,但带来了更多的存储成本开销。GaussDB(DWS)采用主备从高可用技术,使得集群在任意单点故障时仍保持两副本可用,相比传统三副本节约了三分之一的存储空间,但数据可靠性基本持平。
GaussDB(DWS)引入备机和从备的概念,正常情况下主机和备机通过日志流复制和数据页流复制进行强同步,主机与从备仅保持连接并不发送日志和数据,因此从备不占用额外存储资源。当备机发生故障时,主机自动感知,将未完成同步的日志和数据发送给从备,并保持主从强同步。主备同步向主从同步的切换在内核底层HA实现,事务层并不感知,因此不会造成任何报错和不一致。
同理,当主机发生故障时,由集群管理感知并仲裁备机升主,升主后的备机连接从备进行主从强同步。因此,在一组DN内发生单点故障后,不会影响服务可用性,同时数据仍然有两份副本的可靠性保障。
4.6、在线扩容
GaussDB(DWS)提供最多达2048节点的扩展能力,通过加入新的节点,集群的存储容量和运算能力能够得到线性提升。
GaussDB(DWS)采用Node Group技术,支持多表并行扩容,扩容速度高达400G/小时/新增节点。
GaussDB(DWS)在线扩容具有如下特点:
- 扩容不中断业务。
扩容过程中支持数据持续入库、查询业务不中断。
- 一致性Hash技术和多表并行扩容等技术,助力扩容性能提升。
采用一致性Hash技术使得重分布过程中需要迁移的数据量最小。
重分布过程中支持多表并行及用户自主选择表的重分布顺序。
支持扩容进度查询,实时监控扩容进度。
- 随着节点数增加,集群性能线性增长。
在全并行分布式架构下,随着节点数的增加,集群的数据加载性能、业务处理性能和容量可线性扩展。
4.7、透明安全技术
GaussDB(DWS)支持对数据进行透明加密,加密解密的过程用户无感知。每个集群有一个CEK(集群秘钥),每个数据库采用单独配置的DEK(数据库加密密钥)加密保护,DEK使用CEK加密保护,保证秘钥安全。密钥通过Kerbores服务申请和加解密,加密算法通过配置项统一配置。目前支持AES、SM4算法,其中SM4算法在hi 1620以上版本芯片中支持硬件加速。
大数据中蕴藏巨大价值的同时,也带来了隐私信息保护方面的问题。GaussDB(DWS)支持客户以表的列为单元创建脱敏策略,客户可针对业务中的敏感数据进行策略创建,敏感数据的界定由客户结合自身业务场景识别。制定脱敏策略后,只有管理员和表对象的owner才能访问原始数据。同时,脱敏的数据可以参与实际运算及使用,仅在数据库服务最终返回结果时脱敏。
以图为例,用户数据中每个人员的工资、email和手机号码均为敏感数据,包含了用户的隐私信息,如果明文显示,将会暴露用户的隐私,带来一系列问题。经过透明脱敏处理后,普通用户查看到的数据均被掩码显示,从而保护了用户的隐私。
数据脱敏的关键技术如下:
- 策略可配置
客户可结合自身业务场景识别敏感数据并使用DDL在表的指定列创建脱敏策略。
- 策略可扩展
内置数值、字符、时间类型脱敏函数,支持用户自定义脱敏函数。
- 访问控制
制定脱敏策略后,只有管理员和表对象的owner才能访问原始数据。
- 数据可用性
脱敏数据可以参与实际运算及使用,仅在最终返回结果时脱敏。
4.8、SQL自诊断
传统的SQL优化需要较多的前期工作收集信息,对优化人员的要求较高,尤其是分布式数据库,需要丰富的经验和深厚的知识才能够定位出问题SQL。如图2-6所示,GaussDB(DWS)在执行SQL的过程中能够智能化地分析发生的性能问题,以通俗易懂的方式记录和呈现给用户,实现自动化地诊断,帮助用户快速地识别和定位问题,方便性能调优。
5、产品优势
GaussDB(DWS) 数据库内核使用华为自主研发的GaussDB数据库,兼容PostgreSQL 9.2.4的数据库内核引擎,从单机OLTP数据库改造为企业级MPP(大规模并行处理)架构的OLAP分布式数据库,其主要面向海量数据分析场景。
GaussDB(DWS) 与传统数据仓库相比,主要有以下特点与显著优势,可解决多行业超大规模数据处理与通用平台管理问题:
5.1、易使用
- 一站式可视化便捷管理
GaussDB(DWS) 让您能够轻松完成从项目概念到生产部署的整个过程。通过使用GaussDB(DWS) 管理控制台,您不需要安装数据仓库软件,也不需要部署数据仓库服务器,就可以在几分钟之内获得高性能、高可靠的企业级数据仓库集群。
您只需点击几下鼠标,就可以轻松完成应用程序与数据仓库的连接、数据备份、数据恢复、数据仓库资源和性能监控等运维管理工作。
- 与大数据无缝集成
您可以使用标准SQL查询HDFS、对象存储服务(Object Storage Service,OBS)上的数据,数据无需搬迁。
- 提供一键式异构数据库迁移工具
GaussDB(DWS) 提供配套的迁移工具,可支持MySQL、Oracle和Teradata的SQL脚本迁移到GaussDB(DWS) 。
5.2、高性能
- 云化分布式架构
GaussDB(DWS) 采用全并行的MPP架构数据库,业务数据被分散存储在多个节点上,数据分析任务被推送到数据所在位置就近执行,并行地完成大规模的数据处理工作,实现对数据处理的快速响应。
- 查询高性能,万亿数据秒级响应
GaussDB(DWS) 后台还通过算子多线程并行执行、向量化计算引擎实现指令在寄存器并行执行,以及LLVM动态编译减少查询时冗余的条件逻辑判断,助力数据查询性能提升。
GaussDB(DWS)支持行列混合存储,可以同时为用户提供更优的数据压缩比(列存)、更好的索引性能(列存)、更好的点更新和点查询(行存)性能。
- 数据加载快
GaussDB(DWS)提供了GDS极速并行大规模数据加载工具。
5.3、易扩展
- 按需扩展:Shared-Nothing开放架构,可随时根据业务情况增加节点,扩展系统的数据存储能力和查询分析性能。
- 扩容后性能线性提升:容量和性能随集群规模线性提升,线性比8。
- 扩容不中断业务:扩容过程中支持数据增、删、改、查,及DDL操作(Drop/Truncate/Alter table),表级别在线扩容技术,扩容期间业务不中断、无感知。
高可靠
- ACID
支持分布式事务ACID(Atomicity,Consistency,Isolation,Durability),数据强一致保证。
- 全方位HA设计
GaussDB(DWS) 所有的软件进程均有主备保证,集群的协调节点(CN)、数据节点(DN)等逻辑组件全部有主备保证,能够保证在任意单点物理故障的情况下系统依然能够保证数据可靠、一致,同时还能对外提供服务。
- 安全
GaussDB(DWS) 支持数据透明加密,同时可与数据库安全服务(DBSS)对接,基于网络隔离及安全组规则,保护系统和用户隐私及数据安全。GaussDB(DWS)还支持自动数据全量、增量备份,提升数据可靠性。
5.4、低成本
- 按需付费:GaussDB(DWS) 按实际使用量和使用时长计费。您需要支付的费率很低,只需为实际消耗的资源付费。
- 门槛低:您无需前期投入较多固定成本,可以从低规格的数据仓库实例起步,以后随时根据业务情况弹性伸缩所需资源,按需开支。
6、小结
随着数据库技术不断发展,相信后续GaussDB(DWS)应用场景会起来越多,让我们一起期待更丰富的GaussDB(DWS)应用吧。
【一起来玩转PB级数仓GaussDB(DWS),分享你的技术经验与体验心得,赢开发者大礼包!】第19期有奖征文火热进行中!
- 点赞
- 收藏
- 关注作者
评论(0)