开发者学堂课程【智能数据建模训课程 :阿里云 DataWorks 智能数据建模(一)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1223/detail/18311
阿里云 DataWorks 智能数据建模
内容介绍:
一、相关背景
二、智能数据建模的产品的业务价值
三、数据建模的方法论
四、数仓分层的工作方式
五、DataWorks 智能数据建模的产品功能
六、DataWorks 智能数据建模的产品功能
七、怎么买建模以及建模收费方式
今天主要介绍一下 DateWorks 智能数据建模的核心产品能力和产品购买方式。在介绍产品功能之前,先介绍一些相关的背景知识。
一、相关背景
首先,Dateworks 实际上是在2009年就已经在阿里巴巴集团立项,当年的 Hadoop 集群的话规模已经高达1000台,其中 Dateworks 在2021年之前实际上是开发视角自底向上小步快跑,并且能够快速满足业务需求为主要目标的出仓构建模式。2021年智能数据建模发布之后,Dateworks 可以支持业务视角自顶上自顶向下的规范,出仓建模,也可以支持传统的开发视角,自底向上。建模式真正能够做到规范化、可持续发展的构建数据仓库。
在智能数据建建模产品正式发布之前的这十多年时间里面,阿里巴巴的各个数仓团队,实际上他并不是说不去做数据建模,而是采用的线下造建模评审的方式去开展这一项建模工作。流程本身的话其实非常规范,并且模型的上线以及变更的话,它有着非常严格的一个评审流程。但是即便如此的话,其实线下建模它还是会存在很多问题,就是有它自己的弊端存在。线下建模的弊端的话,主要可以从三个方面去讲,总结一下:可以是规范定义,模型设计和数据开发。那从规范定义方面来讲的话,它存在的主要问题是数仓规范与模型设计分离,符合规范的模型设计模型,建模式本身来讲的话其实要求高。
建模是需要既要能够把业务需求高度抽象进行模型设计,还需要能够牢牢记住大家一起制定好的树仓规范里面的点点滴滴,任何一个细节都需要记住,不然的话他可能制定出来的模型是会不太符合规范的。第二点的话就是数据指标定义的效率其实会比较低,并且的话指标的数据加工逻辑和指标的定义其实是分离的,那过去传统的单个创建指标的这种创建方式,首先效率还会比较低下。那其次的话,其实这种也没有办法去保证指标的唯一性,再次就指标的加工逻辑和指标定义本身也存在错别的情况,最终就会导致说指标口指标的真实口径无法统一。这样会带来大量的一个针指标,结果数据不一致的一个焦工作。有大量的沟通工作存在。
其次就是在规范定义方面来讲,还有一个应用层缺少规范的一个痛点,这一点,就是大多数应用层的建设,它其实都会面临一个需求多变,需求开发时间紧,任务重的一个特点,数应用层的模型规范的管理本身带来了非常大的一个挑战,因为如果说是既要能够满足业务需求,又要能够符合规范在短时间内去完成这些工作的话会很难。第二、从模型设计方面来看,那从模型设计方面来看,它存在的主要问题是说纯纯人工的这种模型设计方式,可能像工作效率会比较低下,所以看下,那于是说我在 Excel 里面去做各种模型设计,然后并且在去 Excel 里面去做维护等等,第三数据开发方面来讲的话,它存在的主要问题是模型设计与物理表的开发分离,模型设计是模型设计,数据开发是数据开发,那最后有可能导致就是说我数据开发的逻辑和模型设计的理念的话,其实会或多或少的会存在一些差异。
此外,除了这三点以外,其实本地建模它会还会有一些隐藏的问题存在,比如说当我们的文件足够多的时候,可能我管理的时候就会存在很混乱的情况。然后也会存在比说我们电脑坏了,硬件设备坏掉了或者被偷掉偷偷掉了都有可能会存在。另外本地建模以我的文件管理的方式的话,在做工作交接的时候,其实也会存在很大的不便性,有可能就丢掉了就没有了。
二、智能数据建模的产品的业务价值
数据建模,它作为数创规范本身来讲的话,其实最大的受益者是企业自身,但是企业的价值如果想要去实现的话,它必须要通过一线研发人员的价值来体现。于一线研发同学来讲,其实智能数据建模,能够为大家带来的最大的好处就是工作提效,相比传统的纯开发或者是线下建模,线上开发这种工作方式来讲的话,智能数据建模为大家带来的是说更加高效的建模和研发的工作方式。由此的话其实能进一步帮助企业去做好企业数据体系的一个规范性建设,让数仓规范的好处真正落到实处。
其次是当我们企业规范,数仓规范以后,能为企业能够沉淀大量的系统性的核心数据资产,同时也能顺其自然的能够降低企业比较昂贵的一个计算成本和存储成本。
三、数据建模的方法论
现在其实市面上主流会有范式建模和维度建模。但我们产品,实际上是采用的基于是维度建模方法论去做的,本质上跟我们所处的环境是有关系的。阿里巴巴大多数业务的话,既要在过去的发展过程中既需要既既是高速发展的,又是变化多端的同时也是数据量会非常大。
阿里巴巴的数仓团队在面临这样的业务情况的基础之上选择了用维度建模来去做一个主流的方法,就是建模方法论。
因为我们智能数据建模它本质上是阿里巴巴自研的一款产品,所以是说它生于阿里,长于阿里,那也是基于阿里本身的一个特点,所以产品会围绕维度建模方法论去做产品建设
四、数仓分层的工作方式
一般来讲,我们会把数仓分层分为三大层:ODS 、CDN和ADS。
1、ODS 层
ODS 我们会称为天然层。ODS 主要是用于存存储业务系统同步来的业务数据,一般情况下的话我们不会 ODS 的数据做过多的加工,这样的话其实是方便我们后续在 ADS 和 CDM 数据出错的时候能够快速准确的溯源。换句话说 ODS 不是数仓同学设计出来的而是我们直接业务系统的一个同步。
2、CDM 层
CDM 实际上是数仓建设过程中最重要的一层,我们通常称为公共层,CDM 层需要业务进行一个高度的抽象,它需要具备通用性、易用性、复用性。因此,公共层的建设数据数仓的同学来讲,其实要求是非常高的。那这些同学的话,他既要具备非常精通我们的建模方法,同时也要业务的情况。这两层的再去做细分的时候我们一般会分为 DWD(明细数据层)、DWS(汇总表,我们一般也会叫他是轻度汇总表)
3、ADS 应用层
ADS 应用层,它其实是在数仓的整个范围内最难管理的,但是管理好了之后它的效果会非常明显。ADS 层可能它有非常大量的表存在,而且用户用的就是一般业务分析同学用的版本,其实频率也是最高的,那这一层如果说是规范起来的话,那可能就是我们需要建设的表也少了,然后查的时候可以统一用一个逻辑去查,这样的有可能它的存储和计算成本就是会降低很多。但是在 ADS 这一层即使是说用的最频繁,面向业务这一层,也不是说这一层在模型设计之前也需要去了解清楚我们的应用场景,因为不同的业务场景模型的设计要求是完全不一样的,这块儿的话难点在于我们的收藏到底应该怎么去划,比如我业务板块应该怎么去划分,我的数据怎么划分,数据集是怎么划分,这个是真正难的地方。
这一页的名词解释的话就不做过多介绍了,大家在使用产品的过程中在我们的产品界面上也会有一些介绍,具体每个定义它到底是什么意思,是怎么去用的,这些在产品上也都会有提示的。