赞
踩
文章作者:白鹿第一帅,作者主页:https://blog.csdn.net/qq_22695001,未经授权,严禁转载,侵权必究!
数据仓库是一个用于存储大量结构化和非结构化数据的集中式数据存储区域。它旨在帮助组织更好地理解其数据并支持决策制定过程。数据仓库通常由多个数据源提供数据,并使用 ETL(提取,转换,加载)过程将这些数据集成到一个单独的位置中。数据仓库通常用于支持商业分析、数据挖掘、业务智能和决策制定。
数据仓库的重要性在于它提供了一种将数据从各种来源集成到单个位置的方法。这使得对整个组织的数据进行分析和报告变得更加容易。数据仓库还可以帮助组织更好地了解其数据模型,从而更好地规划未来的 IT 项目。使用数据仓库可以提高组织的数据质量、数据集成能力和数据分析能力,从而提高组织的效率和决策质量。
我们将数据仓库需求场景分为两类,分别是线下部署场景和公有云场景。
数据仓库的线下部署场景是指将数据仓库部署在本地服务器或数据中心的情况。适用于需要访问敏感数据或需要高度定制化的企业系统。
线下部署场景客户需求,主要集中在以下几点:
数据仓库需求场景的公有云场景是指将数据仓库部署在公有云中的场景。其中,公有云指的是由第三方服务商提供的云计算基础设施,例如亚马逊云服务(AWS)、微软云服务(Azure)、谷歌云平台(GCP)等。
公有云部署场景具备的优势集中在以下几点:
公有云部署场景面临的劣势集中在以下几点:
公有云部署场景客户需求,主要集中在以下几点:
业务场景:客户搭建一套系统,上面跑一个业务 1,里面有一些数据。现在客户需要新上一个业务 2,传统做法就是把这个新作业加到这个原来系统 A 上,但是原来这个系统可能撑不住,原因可能是并发数、吞吐,或者其他原因。这个时候我们需要对系统做扩容,但是仅扩容单个集群,节点到一个规模的时候线性比的提升并不明显,尤其是并发很高的时候,单纯的增加节点并不能够很好的解决问题。
传统措施:这个时候我们需要搭建一个系统,用一个新系统服务新业务,新业务可能要访问业务 1 数据,就会把业务 1 的数据复制一份放到这个数据 2,类似于读写分离,但是这样的话会造成以下问题:
为了规避掉上述问题,我们采用数据共享(含湖仓一体)能力,其具备的优势有以下几点:
不同的场景对需求的优先级是不一样的,我们数仓要考虑在面对这两类不同的场景的时候,怎么用一套数仓的价格去解决这个问题,这是在需求场景上我们看到的一些变化。
早期的数仓,就挂了一个共享存储,我们称其为 Shared Storage。
特点:共享存储和状态,计算节点像访问单机一样访问最新的全局数据。
优点:无需数据分片,无需分布式 plan 执行,对业务透明。
缺点:
后面又出了这种 Shared Nothing 架构,像 GaussDB 十几年前刚开始做的时候,也是这么一个架构。
特点:一种分布式计算架构,CPU、内存、磁盘等资源都是私有的,整个系统中不存在共享资源,每个节点只处理自己分片的数据,没有单点的竞争。
优点:扩展性好。
缺点:
特点:存储类似 Shared Storage,计算类似 Shared Nothing,每个节点只处理自己分片的数据。
优点:
我们先回顾一下 DWS 演进历程,具体如下图所示:
GaussDB(DWS)在十年前就开始在做了,当时是针对于线下的这种场景,采用的就是 Shared Nothing 架构,在14年之前主要是做数仓里面比较通用的技术,包括分布式的执行、现代化引擎、列存储机制,后面开始在大行里面做连创,就遇到了更多的产品化的需求,包括这种大集群的通信、负载管理以及怎么跟用户这种大数据的生态做互通等等,再到后面随着市场的推广越来越多,就有更多产品化诉求和企业级特性诉求。在 2020 年的时候开始做 DWS,内部叫 3.0 版本,主要就是一个云原生数仓,也是我们本文将要给大家分享的内容。
三层解耦:
灵活弹性:
一数多用:
按需配置:
我们把弹性需求可以分成两大类:一类就是较长周期,随着公司业务的增长逐渐增加的;另外一种是短周期的,可能每天都在变,或者是每天的同时间点的业务负载都不一样,像对于这种比较稍微长周期或者稳态一点的业务,可以用这种在单位 vw 内增加计算资源的方式去来承载。
在湖仓一体上进一步增强体验,使用大数据的生态更加简单、维护代价更低,体验横向融合分析。
传统的维护,当外表的数量是一张、两张的时候还比较好维护,当外表有有成千上万张的时候就比较麻烦,你首先要把这些外表都创建出来,其次如果大数据这边把表的结构改了,不管是改了字段的类型或者是新加了字段,外表都需要做同步的维护,维护的代价就会高,而新的湖仓一体就完美解决掉了这个问题。
无缝访问数据湖:
融合查询:
极致查询性能:
AI 有自己的一套系统,即 ModelArts,数据是 DWS,AI 如何访问到 DWS 的数据,DWS 又该如何利用 ModelArts 的模型?主要就是解决这两个问题。数据共享我们可以把数据都放到 obs上去,用开放的格式,这样数据共享的问题就比较好解决;在 AI 模型这方面,我们通过在 DWS 里面写 SQL的形式去使用 ModelArts 的 AI 能力。
数据生产线→AI 生产线:无缝数据通路
AI 生产线→数据生产线: AI for Data
在性能方面,存算分离之后关心的就是计算存储,保证性能主要的手段有冷热分区高效缓存、近数据计算和大带宽云存储三个方面,我们来看下图这个效果是非常显著的。
系统会把 obs 上的数据缓存到本地,解决很多性能的问题,缓存现在支持大小可配,想获得更好的性能可以多买一点本地缓存,如果对这个性能没有太高诉求,可以少买,成本完全由自己决定。
无缝配合缓存:
近数据计算:
计算和存储分离之后,这种时延天然存在,物理上是不可避免的,在这种时延下,如果不做任何优化,性能肯定会下降,所以在这里做了一个通过并发来换取带宽的手段,虽然单线程作 IO,延迟变高,但是可以开更高的并发的,来把 obs 带宽打满。
文章作者:白鹿第一帅,作者主页:https://blog.csdn.net/qq_22695001,未经授权,严禁转载,侵权必究!
我是白鹿,一个不懈奋斗的程序猿。望本文能对你有所裨益,欢迎大家的一键三连!若有其他问题、建议或者补充可以留言在文章下方,感谢大家的支持!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。