00:00
来咱开始,那接下来说一下这个数据仓库的这个命名规范,呃,其实呃是这样的啊,就是咱们到公司之后,不管是从事什么大数据开发,还是从事这个呃加vae的开发,那其实都会有一些规范需要我们去遵守啊,需遵守你比如说咱们以这个加E为例啊,你加E你你需要遵循的规范是什么呀?加E咱们是不是写加va代码对吧?啊,你要加代码的话啊,那你的规范比如最简单的诶,你比如说你要去呃去创建一个一个class,一个类对吧,那你你得有包得有类名对不对,那的包名,你的类名都有相应的规范啊,那再比如说你个类建完之后,里边是不是有属性啊对不对,那你的属性啊,你的属性名,你的属性的这个类型等等,都都是有这个相应的规范的。啊,那这些东西必须啊,按照咱们这个规范来啊,必须按照规范来,当然这个规范呢,一般情况下都会有这个相应的,呃,这个说明文档啊,就是大家刚到公司呢,呃,会给一段时间让大家去熟悉这些规范,熟悉一些业务啊,是这样,这个大家也知道啊,那咱们数仓里边呢,一般情况下也会有这个相应的规范啊,那当然咱们这个书仓里边,当然写代码要少一些啊,我们主要就是写啥,就是主要就是建表,写circleq,写写shell脚本,对吧,主要就是这些啊。
01:17
哎,那看一下咱这个规范都包含了哪些内容,先看第一个啊,就是表命名的这个规范啊,来看一下咱这个,呃,规范什么样的啊,因为咱们数仓我们这个表分了五层啊,所以说每一层啊,我都需要有一个啥呀,都需要有一个前缀啊,这个前缀是不是用来标识这张表属于哪一层啊啊,你看那张表你就他知道它是哪一层了。啊,然后呢,看一下啊,那第一个咱这有什么。啊,Ods层啊,就ods加表明啊,那DWD,那DWD呢,相对来说特殊一些啊DWD呢,因为我们会进行维度建模,对吧,会行维度建模,进行维度建模,我们维度模型当中有俩概念,一个叫事实啊,一个叫维度。
02:01
啊,就是事实表维度表啊,有俩概念,那所以说咱们在这儿呢。为了区分事实表和维度表,我们在这个DW的前缀的基础上呢,咱们又加了一个啊,事实表呢就加一个fact,维度表呢就加一个diam,就是相当是dimension的那个,呃,简写嘛,Dimension就是维度的意思,Fact是事实,Dimension是维度啊,用来区分事实表和维度表啊,DWS层加个前缀,DFT加前缀,ADS加前缀,就是这个意思啊,然后呢,还有一些其他的,比如说这个临时表。叫tmp啊,那行为表其当那个日志表呗,日志表咱们加一个后缀啊,叫做log,是这样的,主要是这么去一些简单的命名规范,但是在公司里边,我们可能这个规范呢,要比咱们这更多一些啊,更多一些,比如说哎,增量表我需要加一个这个,比如说in CI啊,Incc不就是这个increase,就是增量的意思啊,对吧?啊,加一个INC的后缀啊,那你一看是不是就知道它是一个增量表啊对不对,那比如说全量表呢?啊,那我可能会加一个其他的一些后缀,比如加个O啊啊等等这样的啊,就是不同的这个,呃,同步类型的表啊,它其实也也可能有不同的这个前缀或者后缀啊,是这样的啊呃,这个很简单啊,其实别管它这个,呃,这个规范有多多,你这十条也好,80条也好,你只要遵守就行了啊,这个没有什么,没有什么那个难度啊啊那个往下走,下面呢,是我们那个脚本的命名,因为在数仓里边,嗯,到时候咱们会发现大家会写好多脚本。
03:32
我们现在已经写了一个了,对吧,就是那个scoop导数据那脚本对不对,那其实我们后续你会发现啊,咱们写的所有的circle啊,因为你书仓里边是不是就是一层一层的写circle啊,啊,你写的所有色课最终也会把它封装到shell脚本当中,那咱们为什么要封装到shell脚本里边啊。呃,其实方便封装到脚本里边啊,主要方便谁啊,方便我们那个阿兹卡班去调度啊,方便阿兹卡班去调度啊,因为你封到脚本里边之后,你只要告诉阿德卡文,你到时候去执行那个脚本是不是就行了呀,方便调度啊,所以说咱们后续会写很多脚本,那这个脚本那在这咱们是怎么命名的啊,看一下啊,是不是就是数据源,然后呢,To目标,然后呢,DWD或者是呃是DB或者是log DB就是导的是业务数据,Log导的就是日志数据啊是这么去命名的,比如咱们这举个例子啊,举个什么例子呢?比如说我现在需要将咱们HDFS上咱们那个路径里边的数据啊,什么数据呢?就是业务数据啊,我需要导到ODI层的表里,那你说他那个脚本应该怎么写呀。
04:35
是不是应该是数据源,数据源应该是HDFS对吧,然后导导到哪呢?导到DS,然后什么数据业务数据,那就加一个DB.sh是不是就完事了啊,就这么命名啊,这个很简单啊,接下来看最后一个,最后一个呢,就是咱们这个数据,呃,这个表里边啊,表里边这个表字段的类型规范啊,表字段类型规范,那来看一下咱这这个具体的要求啊,来所有的数量类型全部,诶设成big in,呃,数量类型主要包括什么呀?比如说包括我们购买商品的啊,比如说这个总件数。
05:13
对不对,或者什么评论的什么次数等等等件数次数这种是不是都用big in呀,就是整数嘛,啊这是它,然后下边金额类型啊金额类咱们用这个decimmo十进制啊decim类型,那这个decim类型它里边你看啊,它是不是相对来有点特殊啊,它大家之前有没有用过这个类型,嗯,有用过没有没用过的对吧?那给大家解释一下啊,咱们这里边字段里边是不是这个字段类型里边是不是需要传参呀,对吧?啊这需要传参,那这俩参数分别指的是什么?先说这个前面第一个16表示我这个啊,一共有16位有效数字啊,16位。啊,然后这个二指的是什么呢?哎,小数部分占两位啊,小数部分占两位是这样的啊,那这个就是所谓的这个单字猫类型啊,那也就是咱们所有的金额,因为金额咱们为什么保留两位小数。
06:05
因为在我们这个电商里边,咱们应该自己也能也能这个体会到啊,你只要涉及到金额,咱是不是最多就叫就到分内那一位啊,对吧,元角分啊,所以是不是就保留两位啊啊所以就是保两位这个意思啊啊那往下走,那所有的这个啊,什么名字啊,描述信息啊等等这些东西,咱们全用死质类型啊,死值类型啊,来来看下边主外键类型,外键类型呢,咱们其实也用的是死肢类型,给大家解释一下啊,其实在have当中,咱们其实有这个主键外键这个概念嘛。啊,没有对吧,其实主键外键是在哪儿,是不是在关系型数据库里边才有这个主外键的约束啊,对不对,在咱们还有当中,其实没有这个主外键这个概念啊,那但是咱们这儿呢,呃,就是没有咱们人为的个规定一下啊,那比如说我这个书仓里边一张表,那就是能够表示咱们这个唯一的一行数据的字段,咱们就管它叫主键呗,对不对,那跟外边另外一张表进行关联的字段,那咱们就管它叫做就外键呗,是那样的啊,就咱们在这儿呢,主外键类型全部都是死类型。
07:09
啊,那为什么全部是死菌类型啊,那通常在MYSO当中,我们这个主键或者外键那个类型可以是什么呀,可以是这个,呃,Int类型啊,就是全是数字啊,也有这个字符串的,对吧,对吧?那所以说咱们不管它是字符串还是int类型,那我是不是都可以用string类型啊,都可以转成string,那所以咱们为了方便兼容咱们前面各种类型啊,啊是这个意思啊,然后最后一个时间戳咱们采用big begin啊就完事了啊后续我们建表的时候呢,需要遵循这些所有的规范啊好,那我把视频录一下。
我来说两句