华人澳洲中文论坛

热图推荐

    数据中台建立必知(三):要想中台建的好,数据模型得做好

    [复制链接]

    2022-11-11 21:55:16 15 0

    在数据中台构建以前,剖析师常常发现本人没有能够复用的数据集,不能不使用原始数据挨次进行数据的荡涤、加工、计算目标。



    反复进行原始数据的荡涤加工
    因为业务部门的剖析师大可能是非技术出身,写的SQL可能对比差,多层嵌套对后盾的计算和调度资源损耗十分大,形成队列梗阻,影响其余数仓工作,致使开发不满。
    开发可能会勾销剖析师的原始数据读取权限,假如想取数,需求独自和开发沟通。
    那末这会重大影响剖析师的任务效力,剖析师会埋怨开发提供的数据不完美、速度慢,一个需要常常要等一周乃至半个月。
    以上场景矛盾的本源在于数据模型无奈复用。数据开发是烟囱式的,每次遇到新的需要,都从原始数据从新计算,十分耗时且挥霍资源。
    01
    “好”的数据模型是啥样?
    在这里,咱们先区别业务零碎中的数据模型和数仓中的数据模型的不同(如下表)。



    表1数据模型的不同
    数据中台的数据模型是整合数仓的数据模型失掉的,咱们需求重点关注如何诊断以后数仓中数据模型的问题以及如何搭建数据中台可复用的数据模型。
    回想配景篇中对于数仓的分层设计,咱们知道以后主流数仓分红下列4个层级:



    数仓根底架构图
    上面的两张表是基于元数据核心提供的血统信息,分别统计大数据平台上正在运转工作和即席查问。



    表2:各层表形态统计
    即席查问(Ad Hoc)是用户按照本人的需要,灵敏的选择查问前提,零碎可以按照用户的选择生成相应的统计报表。即席查问与普通运用查问最大的不同是普通的运用查问是定制开发的,而即席查问是由用户自定义查问前提的。


    表3:各层查问数量统计
    表2中有2547张未辨认分层的表,占总表的40%,它们根本没方法复用
    在已辨认分层的读表工作中,ODS : DWD : DWS : ADS的读取工作分别是1072 : 545 : 187 : 433,间接读取ODS层工作占这四层工作总和的47.9%,这阐明有少量工作都是基于原始数据加工,两头模型复用性很差
    在已辨认的分层的查问中,表2中ODS : DWD : DWS : ADS的命中查问分别是892 : 1008 : 152 : 305,有37.8%的查问间接命中ODS层原始数据,阐明 DWD、DWS、ADS 层数据建立缺失重大
    尤为是ADS和DWS,查问越底层的表,就会致使查问扫描的数据量会越大,查问时间会越长,查问的资源损耗也越大,使用数据的人满意度会升高
    进一步对ODS层被读取的704张表进行合成,发现有382张表的上游产出是DWS,ADS,尤为是ADS达到了323张表,占ODS 层表的比例45.8%,阐明有少量ODS层表被进行物理深加工。
    经过下面的剖析,咱们似乎曾经找到了现实数据模型设计具备的因素:可复用、够完美、守标准。



    那末,如何详细地度量这三个因素呢?
    02
    复用度
    数据中台数据模型设计的中心是完成模型的复用与同享
    经过元数据核心的数据血统图,能够看到,一个对比差的模型设计,自下而上是一条线。而一个现实的数据模型设计,它应该是交错的发散型构造。



    好坏模型比较
    复用度可用模型援用系数权衡:援用系数越高,数据模型的复用性越好。
    模型援用系数=被读取模型间接产出上游模型的数量好比一张DWD层表被5张 DWS 层表援用,这张DWD层表的援用系数就是 5,假如把一切DWD层表(有上游表的)援用系数取均匀值,则为DWD层表均匀模型援用系数;从教训上看,个别低于2对比差,3以上相对于对比好。一种晋升数据模型复用度且晋升响应速度的战略,是在数据源和数据使用之间减少缓存层。缓存层中寄放复用度较高的数据模型,以及这些数据模型所携带的数据。
    剖析师或业务人员按照需要查问数据时,假如是罕用的数据模型,便不用再进行从源数据中取数、荡涤、拼接等反复举措,从缓存中间接导入数据模型便可,大大晋升复用数据模型的前端响应速度。



    缓存层战略
    03
    完美度
    权衡DWD层是不是完美,需求确认ODS层有多少表被 DWS/ADS/DM 层援用
    假如DWD以上的层援用的越多,就阐明更多的工作是基于原始数据进行深度聚算计算的,明细数据没有积攒,无奈被复用,数据荡涤、规范化、集成存在反复开发。
    因此,能够用跨层援用率目标权衡DWD的完美度。
    跨层援用率=ODS层间接被DWS,ADS,DM层援用的表数量/一切活泼的ODS层表。跨层援用率越低越好,由于在数据中台模型设计标准中,不允许泛起跨层援用,ODS 层数据只能被DWD援用。
    针对DWS/ADS/DM层完美度,次要看汇总数据能间接知足多少查问需要(也就是用汇总层数据的查问比例权衡)
    假如汇总数据无奈知足需要,使用数据的人就必需使用明细数据,乃至是原始数据。
    汇总数据查问比例=DWS/ADS/DM层的无效查问/一切无效查问。汇总数据查问比例越高,阐明下层的数据建立越完美,关于使用数据的人来讲,查问速度变快、机能晋升。
    04
    标准度
    标准度其实没有特别明白的量化目标,次要按照数据表命名或归属主题域是不是正确等情形,进行定性判别。



    表2:各层表形态统计
    例如,在表2中,有超过40%的表都没有分层信息,在数据模型设计中,这显然不标准。
    除了肯定表有无分层,还要看它有无归属到正确的主题域(例如买卖域)。假如没有归属主题域,就很难找到这张表,也无奈复用。
    其次,咱们需求看表的命名。一个标准的表命名应该包罗主题域、分层、表是全量快照,仍是增量等信息
    除此以外,假如在表A顶用户ID的命名是UserID,在表B顶用户ID命名是ID,就会对使用者形成困扰,这究竟是不是一个表。
    因此,咱们要求相反的字段在不同的模型中,它的命名必需是统一的
    05
    咱们进行一个冗长的总结:
    要想失掉一个“好”的数据模型,首先,咱们能够统计未标准表的数量(可仿照表2),诊断数据模型现状。
    而后,制定一些针对性的改进方案,例如把这些不标准命名的表歼灭掉,把主题域掩盖的表比例进步到90%以上。
    在进行一段时间的模型重构和优化后,再拿着这些目标去评价是不是有所改良。
    得多数据开发在向下级报告请示任务时,喜爱用重构了多少模型阐明任务效果,得多老板会想,这些重构究竟对数据建立有多少帮忙?有无一些量化的目标能够权衡?
    因此,咱们需求侧重斟酌是不是真的改良了?以及如何证实真的改良了,而不是强调优化了多少模型
    假定以后咱们曾经对数仓中的数据模型做好评价和改进了,那末,咱们需求怎么做能力让它变为一个数据中台呢?下一篇文章咱们持续探讨。
    假如喜爱麦聪的文章,记得点赞、保藏加关注嗷;关注+私信可获取超好用的数据中台产品装置包。

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    返回列表 本版积分规则

    :
    注册会员
    :
    论坛短信
    :
    未填写
    :
    未填写
    :
    未填写

    主题28

    帖子37

    积分164

    图文推荐