美文网首页大数据精进之路
说说数仓(6)-关于命名规范

说说数仓(6)-关于命名规范

作者: 橘猫吃不胖 | 来源:发表于2019-01-14 12:29 被阅读42次

    话说,没有规矩不成方圆。在搭建数据平台的时候,在数据组内部,一定要先制定好各种规范,越早越好,并且不断的监督大家是否按照约定执行。一旦让大家自由发挥,后期想要统一或者重构,会浪费很大的人力成本和时间成本,记住,这都是坑。

    这里以我目前公司的一些经验,分享下。

    关于项目

    常规来说,数仓的建设是按照数仓分层模型开发的。也有会按照业务线来分层,在各自业务线下重新分层,单独开发的。
    我这里使用的是阿里云的MaxCompute,这是阿里提供的数据平台,一整套开发环境,用起来还是很方便的,省去了自建平台的麻烦。MaxCompute里面有一个项目的概念,一开始本来打算直接根据分层模型的设计来创建项目,但是由于某种原因,改成了按照业务线来创建项目。对于这个项目名,一定要想好,不管根据什么来设计,都需要想清楚,想明白,定了以后就不要再改了,也没法改。

    关于词根

    我忘记是不是叫“词根”了,先写着,后面找本书确认下。词根属于数仓建设中的规范,属于元数据管理的范畴。哦,现在都把这个划到数据治理的一部分。

    正常来说,完整的数仓建设是包含数据治理的,只是现在谈到数仓偏向于数据建模,而谈到数据治理,更多的是关于数据规范、数据管理。

    接着说我们的主角-词根。
    我们学习英语的时候应该有了解过词根这个东西,它就是最细粒度的最简单的一个词语,我们主要用来规范中文和英文的映射关系。我们公司一部分业务是关于货架的,英文名是:rack,rack就是一个词根,那我们就在所有的表、字段等用到的地方都叫rack,不要叫成别的什么。这就是词根的作用,用来统一命名,表达同一个含义。
    指标体系中有很多“率”的指标,都可以拆解成XXX+率,率可以叫rate,那我们所有的指标都叫做XXX+rate。
    词根可以用来统一表名、字段名、主题域名等等。

    表名

    表名需要见名知意,通过表名就可以知道它是哪个业务域,干嘛用的,什么粒度的数据。

    • 常规表
      常规表是我们需要固化的表,是正式使用的表,是目前一段时间内需要去维护去完善的表。
      规范:分层前缀[dwd|dws|ads|bi]_业务域_主题域_XXX_粒度
      业务域、主题域我们都可以用词根的方式枚举清楚,不断完善,粒度也是同样的,主要的是时间粒度、日、月、年、周等,使用词根定义好简称。

    • 中间表
      中间表一般出现在Job中,是Job中临时存储的中间数据的表,中间表的作用域只限于当前Job执行过程中,Job一旦执行完成,该中间表的使命就完成了,是可以删除的(按照自己公司的场景自由选择,以前公司会保留几天的中间表数据,用来排查问题)。
      规范:mid_table_name_[0~9|dim]
      table_name是我们任务中目标表的名字,通常来说一个任务只有一个目标表。
      这里加上表名,是为了防止自由发挥的时候表名冲突,而末尾大家可以选择自由发挥,起一些有意义的名字,或者简单粗暴,使用数字代替,各有优劣吧,谨慎选择。
      通常会遇到需要补全维度的表,这里我喜欢使用dim结尾。

    中间表在创建时,请加上 ,如果要保留历史的中间表,可以加上日期或者时间戳

    drop table if exists table_name;
    create table_name as xxx;
    
    • 临时表
      临时表是临时测试的表,是临时使用一次的表,就是暂时保存下数据看看,后续一般不再使用的表,是可以随时删除的表。
      规范:tmp_xxx
      只要加上tmp开头即可,其他名字随意,
      注意tmp开头的表不要用来实际使用,只是测试验证而已。

    • 维度表
      维度表是基于底层数据,抽象出来的描述类的表。维度表可以自动从底层表抽象出来,也可以手工来维护。
      规范:dim_xxx
      维度表,统一以dim开头,后面加上,对该指标的描述,可以自由发挥。

    • 手工表
      手工表是手工维护的表,手工初始化一次之后,一般不会自动改变,后面变更,也是手工来维护。
      一般来说,手工的数据粒度是偏细的,所以,暂时我们统一放在dwd层,后面如果有目标值或者其他类型手工数据,再根据实际情况分层。
      规范:dwd_业务域_manual_xxx
      手工表,增加特殊的主题域,manual,表示手工维护表

    指标

    指标的命名也参考词根,避免出现同一个指标,10个人有10个命名方法。

    后记

    具体操作结合公司实际情况,规范及早制定。

    相关文章

      网友评论

        本文标题:说说数仓(6)-关于命名规范

        本文链接:https://www.haomeiwen.com/subject/myfxdqtx.html