开发者学堂课程【云原生一体化数仓新能力解读课程:数据建模能力新解读】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1193/detail/18111
数据建模能力新解读
下面对建模的几项比较核心的功能做简单的介绍。
数仓规划整体的架构
可先看中间一块,首先需要先去定义业务分类,业务分类是这样对标到实际的业务过程中,以阿里巴巴的业务来讲,业务分类在细分的时候会有天猫,淘宝,菜鸟等等,这样算是的业务分类,当然说可以根据各个数仓团大家自己面向的业务来去做划分。建议业务分类,哪怕你只管一块业务,也给他定名字,定英文缩写,这样在表名模型名称那里应用进去,这样未来在数仓团队扩大,管辖范围扩大的时候,工作职责范围扩大的时候,不会面临模型不太好去区分的情况。
业务分好之后,再来看一下公共层和应用层的区分。首先,公共层里会分三层:DIM,GWD,GWS。
DIM 需要去计算一下数据,不需要再细分了,纬度表只需要分到数据就可以,而明细表需要去细化到有具体的数据和业务过程。比如,有一张订单创建表,实际上的数据可以是交易率,这需要指定业务过程,业务过程是可以是下单。
DWS 轻度汇总,只要指向到数据域就可以,这是在设计的时候需要去参考一下的。
应用层里主要是 ADS 层。实际上应用层在实际工作中有应用层不只有 ADS ,还会有 DIM,产品都会支持,大家灵活设置,默认的应用层没有未读层,但如果需要也可以自己去创建。
ADS 层主要会去分到需要指定到具体的数据集市和主题域,这是模型在分层化域的时候需要考虑的一整套的体系。同时,如果说是数仓团队负责多个业务,多个工作空间,需要去附用同一套数仓规范,这时可以去使用一下的建模空间的功能,建模空间主要的功能是将一个工作空间指定为建模空间以后,可以同步把其他几个需要共用数仓规范的空间来去做设置为它的研发空间。在一个空间下,把模型空间设置好后可以发布到不同的工作空间去。
逆向建模
逆向建模默认会选中当前表所在的空间是哪个空间,如果是有刚才的研发空间,这里可以有一个下拉,还能选到研发空间。目前来讲,逆向空间支持的是MaxComputer 引擎,需要指定一下是模糊匹配还是精确匹配,如果是模糊匹配,只需要输入表名的关键词就可以,那如果是精确匹配,需要输入表名。下面是指定的表名规范,如果指定之后,根据关键词检检测到的表,就会去匹配规范,具体去生成,最终也会提示给大家,生成的成功的模型有多少张,失败的有多少张,成功的明细是什么,这些也都会有。
正向建模
正向建模指向支持创建维度表,明细表,汇总表,应用表……整体模型的结构会:上面一栏是的操作栏,点编辑后,可以去操作基本信息。基本信息里面主要是分层化域以及表名的生成,表名生成的时候是都是自动化的。第二排是字段管理,那字段管理可以看到:从指标导入,从表导。从指标导入就是从的数据指标导入派生指标,从表和视图导入可以基于已有的物理表,或者是视图把它的表结构同步过来。同时,点编辑进去之后边会有设置,而设置的表格是个性化的,每个人都可以有自己的不同的习惯,哪些字段你常用就可以放出来,不需要的也可以隐藏起来的。
同步表格本质上的操作就是 Excel 的操作,右键会有很多操作,可以尝试一下。当前的模型保存之后,需要去修改。修改可以点代码模式,代码模式里面大家可以选自己常用的,比较习惯的建模语言来去修改模型。
数据开发的简代码
模型如果发布生产,生效之后的模型开发可以点的,点模型开发可以跳转到dim_date 来,跳转过来之后,上面绿色的备注部分,除了日常 dim_date,默认的作者和时间之外,还会把模型的分层化域的信息放过来,可以帮助建开发的同学能够理解模型分层化域到底是怎么样的,因为分层化域的大概率都是是比较偏业务上的描述的,这样对于开发同学去理解模型的时候,会有很大的帮助,包括后续再去做模型的使用以及分析的时候,业务同学去查照模型的时候查找表,也是有非常大的帮助作用, INSERT OVERWRITE TABLE 这里模型名称会自动带过来,如果要把模型名称和表名称写成不一样的,当然不太建议样去写,一般建议是相同的。也可以手动去修改, PARTITION 后面的 ds 在模型里面,在上一个页面的下面里,有一个分区字段会自动带过来,再看一下 SELECT 的部分,SELECT FROM 的这张表,它实际上是从表导入,选了哪张表会放到里。比如把它设置是t别名1,那t1xxx就是来源表和来源字段,哪张表的哪个字段,改了字段的模型名称叫什么。后面是模型字段的显示名,描述和同步。
在后面还有针对每个字段的冗余操作。假如说有一段 ID 字段,那需要把 ID 的名字,它的位置等等其他信息要放到张表的时候,可以去找到对应的维度表,将对应维度表里面的字段拉到张表里面来,那就是它关联的操作。或者,去建立表和表之间的关系,通过关联关系去设置,这时生成的简代码里面还会有一段的语句,该语句会把刚才关联哪两个,哪两张表关联,通过哪个字段关联取了关联表的哪些字段生成到这里来。这个例子是比较简单的。如果说是本质上大家的架构逻辑没有那么那么复杂,不需要建很多张中间表临时表才能去完成的任务,大家只需要去补充一下 case 的条件,逻辑条件,还有一些 where 条件,补充完这些信息后,理论上是可以直接去做发布了。
一般都是从0-1,从 select 开始写,或者是 copy 一段已有的 select 字段的表的字段去写,一般都是中间批量去修改的操作,那些操作不太需要去动脑筋,但是需要花费不少的工作量,这样对于研发效率的提升来讲帮助非常大。
数据指标
该图是数据指标的批量创建。该图左侧是用来去筛选原子指标,时间周期。右侧在批量选完之后会自动生成能够生成的指标。生成的指标中,黄色的代表指标没有生成,绿色后面有一串看不明白指标编码,这代表指标已经生成了。在生成的时候只需要去创建黄色的指标,指标创建好后,在前面的图中,点击从指标导入就可以找到对应的指标了,这就可以作为模型字段存在。如果从表导入后,希望字段和指标做一次关联。
可以使用上图中的关联力度和指标去做指标的关联。
数据标准
数据标准会支持字段标准,字段标准里面就比如说是会员,对于会员,大家日常的叫法会有很多,他可以给这些有很多说法的日常经常需用到的一些词语的业务的词汇来做标准定义。
标准代码主要是对字段的值会有要求,比如说行政区域代码,这里定义北京种为同一的编码,大家都要去符合;还有度量单位和命名词典定义好后,在维度建模过程中都可以去做关联。如果是关联了标准代码会自动去生成它的质量规则,换句话说,如果关联了标准代码的字段在数据开发的过程中不符合要求,会有告警出来。
智能建模对的多引擎的支持
针到 MaxCompute 和 Hologres 有很多定制化的优秀的产品功能支持。
目前,对于 MaxCompute 的支持比较多,逆向建模,查找表/冗余表,代码建模,发布,导出DDL,数据开发简代码等等这些都可以支持。Hologres 的某些功能也在规划中,有一些是已经支持,有一些正在规划中并且即将会支持的产品功能。
三,产品购买方式
前面将 DateWorks 智能数据建模产品的产品功能做了介绍。下面讲一下怎么去购买建模以及建模收费的时候是按照什么方式去计算的。
在阿里云上,可以去找到 DateWorks 这款产品,然后就可以进入它的购买页面。但是 DateWorks 基础版不支持购买数据建模,必须是标准版级或标准版以上才可以购买。选择标准版级或标准版以上后,下面会出来智能数据建模的几个选项,这里分了四挡:最大数量50,最大数量500……
一般来讲,新用户体验的时候建议买一档50,一档现在有首页199的活动,原价是7500块钱,还是很优惠;500数量一般中小型的企业是够用的;比较大型的企业购买2000模型就足够了;无论是哪个档位,在更多市场里选12个月,就自动会有包年八五折的优惠。不过如果是以保有版本的这种购买方式,购买的时候会自动会选中上一版本,这时只需点一下它就去掉了。购买建模只要是增值版就可以,不需要去做版本的更高的升级。
此外,不用担心数量不够用,因为不是所有的物理表都需要去建模,例如:临时表,中间表等等这些表都不需要建模。只有建模的才会算到数量里面来。产品首页上也会有介绍当前所有的工作空间下租户下的所有工作空间,应有的模型总量是多少,这才是的计费数量。建议应用层要去管模型,因为如果应用层管理好,成本会下降很多。
如果买了建模,但是短期内不使用,不想续费也没关系,你所有创建的数据全部都会在产品上有保留,不会删除,后续需要去使用建模的时候,可以再进行续费,再继续使用。