云数仓高斯DWS【这次高斯不是数学家】

举报
广州后花园大侠 发表于 2022/06/02 20:04:41 2022/06/02
【摘要】 DWS是谁? DWS能做什么? 市场上这么多分析产品,DWS的对手有谁? DWS的优势和亮点在哪里 ?笔者拿它和其它产品做了综合对比。

DWS是谁


官方原文 ,数据仓库服务GaussDB(DWS),它 是一种基于华为云基础架构和平台的在线数据处理数据库提供即开即用、可扩展且完全托管的分析型数据库服务,融合数据仓库GaussDB产品的云原生服务 ,兼容标准ANSI SQL 99和SQL 2003,同时兼容PostgreSQL/Oracle数据库生态,为各行业PB级海量大数据分析提供有竞争力的解决方案。GaussDB(DWS) 也是华为云面向未来10年构筑的新一代数据仓库,其基于Shared-Nothing(无共享)架构,内置多层级全并行计算引擎,提供极速性能、按需扩展、超大容量、简单易用的核心能力,面向未来将内置AI引擎能力,是BI商业智能软件的最佳拍档,企业数据仓库的最佳选择。

笔者定义,GaussDB(FOR DWS)是一款基于Postgres、实现MPP、支持行列存储、去中心化、支持分布式事务、可扩展的分布式云原生数据库。

基于Postgres: GaussDB(FOR DWS)参考了Postgres的框架代码,但是在内核方面做了许多优化去适应分析场影的征性,外壳方面保留postgres操作接口 ,对于习惯postgres工程师更具务易操作性。
支持行列存储: 支持行列混合存储,列式主要为用户提供更优的数据压缩比、读查询、行式则提供点更新和点查询性能。
去中心化: 去中心化不同于中心化,常见中心化结构例如主从架构或者职责负色分为多个部分,去中心则是每个节点均平等。
支持分布式事务: 事务允许数据出错时进行回滚,应用在分析场景可以提供高质量准确的数据。



DWS能干什么


GaussDB(FOR DWS)服务于OLAP场景,不仅是简单的大宽表模型,各种星型模型、雪花模型都适合,甚至错综复杂的关联查询都支持。

以下业务场景都可以用上 GaussDB(FOR DWS),包括用户画像、知识图谱、漏斗分析、决策支持、风险预测、即席查询、发布订阅、舆情分析、监控报警、实时数据流。

以下企业相关系统都可以用上 GaussDB(FOR DWS),包括固定经营数据报表、数据挖掘与数据分析平台、统一数据管理平台、经营驾驶舱系统、知识库共享平台、可视化管理系统、经营分析系统、数据服务平台、商务智能分析系统、生产制造数据展示平台、数据分析系统、营销数字化平台。


GaussDB(FOR DWS)擅长连续写密集、连读读密集、统计、分析的应用场景,虽然支持分布式事务,但是不擅长交易、转帐、 支付、计费、清算、核算的业务场景。

DWS的年龄


GaussDB(FOR DWS)正式2020年在华为云出道,在此之前,它在2011年开始在华为内部孵化,并且服务于各个事务线系统,遍布华为金融、政府、电信运营商等行业客户,其中德邦物流、大众集团、长城汽车等企业客户均采用DWS。

DWS的优势亮点

DWS的优势亮点有哪些?先了解数据分析市场的产品有哪些,它们的优势亮点在哪里 ,DWS与它们对比如何如何。

天下数据分析产品虽多,但是以MPP维度一河隔开,所剩无几,十指可数,只有Greeplum、HAWQ、Impala、Presto、Clickhouse、Vertica、StarRocks。

MPP是什么? 当数据入库时,通过MPP机制让数据均匀分布在每一个计算节点,随着数据越来越多,MPP机制对已经落盘的数据进行管理,对数据进行迁移、重新分布打散等工作,让已落盘数据和正入库数据始终均匀分散在各个节点上,逼近数据接近计算。当进行数据计算时,每个节点执行一次计算,向上提交汇总计算结果,而不是跨节点进行计算分析,产生无谓的数据传输。

Greeplum


Greeplum同样基于postgres,却是标准的中心化架构,Greenplum三个组件分别是master、segment、interconnect,安装在不同的节点上面,各司其职。
  • master主要负责接收客户端连接请求,对SQL语句生成查询计划,计划分解成任务均匀分给每个计算节点。
  • interconnect负责汇聚合并数据向master返回结果,主要分摊segment实例之间或者segment和master的IO压力。
  • segment负责最具体拆解的任务执行、数据计算。



HAWQ


HAWQ与Greeplum隶属同一家公司,与Greeplum基于postgres不同的是,HAWQ的底层存储依赖hadoop,所以两个是完全不同的产品线,HAWQ定位sql on hadoop,它充分融合投入hadoop的生态。

HAWQ技术上的亮点,除了改写后的查询优化器,同时它也支持ACID事务,为了做到这一点,它使用了orc格式文件,orc先按行组划分,再按列组划分。而DWS在这方面却是行式引擎独立划分,列式引擎独立划分。

Impala


Impala相当于谷歌的dremel的开源版,它的技术核心在查询树结构组织上尽量打散,在数据粒度上分解更小,并且划分成根节点、多个中间节点和多个叶子节点组成,通过细粒度和小单元可以提前合并,提前优化,更早往上提交。为了更好的读性能,Impala用的是parquet格式文件,parquet是100%的纯列式,虽然损失了部分写性能,但是相对于orc读更好。



Presto


Presto是完全基于内存计算的MPP引擎,通过把数据全部载入内存进行计算,在分布式集群总内存容许的范围内,Presto表现出非常优越的性能,前提是数据小于总内存,当数据比总内存大的时候,内存与硬盘数据互换发生卡顿,虽然Presto一直在研究内存硬盘管理模式,但是多年来没有重大突破,截至2022年6月1日最新版本是presto-server-0.273.1,距离成熟仍有一段距离。

Clickhouse


Clickhouse是数据分析的大杀器,天生特立独行,不走hadoop主流路线,行业先进主流技术的列式存储、数据压缩、向量化执行引擎、代码生成一律与性能的功能都有,它有自己的索引和分区,实现底层内部更加合理的有目标性分段合并方式,能够达到很高的压缩比。可惜只能适用大宽表模型,关联多表业务场景表现不佳,甚至功能不满足需求,TPC-H测试场景和TPC-DS测试场景都无法通过。


Vertica


Vertica是一款基于列式存储、实现MPP、去中心化、可扩展、高可用、支持数据映射的数据库,在国外是一个知名的分析领域的数据库厂商。Vertica的杀手锏是数据映射 ,数据映射的技术本质是通过牺牲空间换取物理视图和索引,从而获得快速的响应时间。Vertica成立于2005,世界数据分析市场占有率较大,也是后辈Clickhouse和StarRock竞逐的目标。



StarRocks

starRocks 是一款高性能分析型数据仓库,使用向量化、MPP 架构、可实时更新的列式存储引擎等技术实现多维、实时、高并发的数据分析库。starRocks 出世就指名道姓 说出Clickhouse的诟病,Clickhouse不擅长多表关联分析,starRocks 目前经过SSB 性能测试和TPC-H测试,这些都是Clickhouse无法完成的测试。性能方面的创新,starRocks 的奥义是预计算和全新的CBO 优化器加快查询优化器的速度。

DWS的优势亮点


DWS与众多个MPP产品最大的区别在于,DWS不是有形产品,而是无形服务。有形产品需要考虑周全、精心设计、调配人力把软件安装在集群才能身体力现,而服务只需要点击廖廖几步点击就可以展到使用。DWS能做到这一点,有赖于得得天独厚云环境

查询优化器的能力提升,查询优化器分为逻辑查询计划和物理查询执行。
DWS的逻辑查询计划包括FQS(fast query shipping)计划、Stream计划以及Remote-Query计划,其中前两类都可称之为下推计划,执行性能一般较好,而Remote-Query计划是前两类计划都无法生成情况下的最后选择,执行性能一般较差。

GaussDB(DWS)的物理查询执行开发了并行计算技术,SQL语句解析成并行逻辑查询计划,在落地执行时可以充分利用CPU内核进行并行加速,提高执行的吞吐率。并行计算的原理很简单,将原本一个线程的工作平均分配到多个线程来完成。由于DWS存储和计算分离,可以自由扩展计算能力,而且底层支持x86和arm两种架构的服务器,基于鲲鹏芯片的垂直优化相比同代的x86性能提升30%。


多年经验的大规模集群稳定安全性。大规模集群信息传输必然会发生 网络风暴、故障容错和信息抖动。独创的Multi-Streams多流通信技术,支持集群内百亿级的通信连接,突破了大规模通信的技术瓶颈。在高可用方面,大规模集群下硬件故障成为常态,DWS做了大量硬件故障感知及容错处理的工作,来保证大规模集群下的集群自愈和业务可用。

数据高可靠性兼顾经济性和安全性。数据存一份有单点故障问题,存三份又太浪费资源,一般来讲数据一主一备是个相对合理的选择,但在故障造成网络分区的场景下,很容易出现双主“脑裂”问题,造成数据不一致。GaussDB(DWS)独创的“主-备-从”技术,引入“主”、“备”、“从”三种角色。集群正常时数据仅在主备间进行同步,发生单点故障时数据向“从”同步,从而保证任何状况下都有两副本的数据冗余。

综合对比


Presto为了追求性能牺性了内存,Presto需要更多的内存。Vertica为了追求性能牺牲了空间,Vertica需要更多的空间,而GaussDB(for dws)牺牲了CPU,更多的CPU越能发挥GaussDB(for dws)的性能。

各花入各眼,DWS未必是MPP里面最强的的,但是架构设计考虑也算周全,而且跟上时代技术主流,例如去中心化架构,向量化引擎、代码、分布式事务这些主流技术都支持。









为什么选择DWS


数据仓库是数据量到了一定的程度才有的产物,华为的GaussDB产品线有着丰富的数据产品,面向MySQL DBA和PostgreSQL DBA,也支持NOSQL的模型开发,完全可以满足你应用开发的需求,当你的业务数据到了一定的程度,顺其自然转移到GaussDB(DWS)里面。或者根据你的需求,通过Openlookeng跨源异构连接不同的业务系统,整合不同的数据到DWS里面。






怎么开始DWS


我也是新手,建议通过以下渠道展开学习。



参考链接






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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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