00:00
好,接下来呢,我们看一下第一章数仓的分成。我们要搭建数据,数据仓库的过程当中啊,要对这个仓呢进行一个分成,那首先来解决一下啊,看看我们要分哪些层。右键。数据仓库呢,在2017年以前啊,这个数据仓库呢,不是特别的成型哈,2017年啊,一七年以前啊,那时候呢,这个数据大家这个分析一个指标,比如说让你分析一个日活呀,分析一个新增啊,啊还是分析一个今天的这个销售额等等这些指标的时候呢,他们就怎么办呢,直接把这个数据像咱们现在已经上传到A了,对吧。直接导入到里面。然后就开始分析了。然后就开始分析了哈,你说以前的时候,而且最开始的时候,咱们讲这个书上项目只讲一天啊,比如在一七年的时候只讲一天。然后呢,一七年下半年的时候,嗯,再往后一点呢,我会讲到讲到两天啊,后面讲到三天,到了一八年的时候吧,一八年的时候我们是一直那时候还维持三天,到一八年下半年,到一九年年初的时候,我们一下子讲到了六天。
01:08
呃,然后到一九年的时候,现在呢,就已经变到了这个,呃十天。十天,但是咱们新版新新在这版项舒畅项目呢,我会讲到多少天呢,15天左右。啊,有时候会增加到15天左右,而且我觉得15天还不一定够,因为后面还有一些东西还没有加进来,呃,后面老师还在全力以赴研发啊,就现在这个时间,我们又已经第三版这个收仓已经启动了将近嗯十多天的时间了,再改一版的话,至少应该达到这个十十七八天啊,十七八天这个样子哈,我们会把这个项目未来会给它拆成两半。拆成两半呢,就是前两个文档呢,我们会作为一个采集平台,你说在企业当中呢,是属于平台岗的一个存在。然后后面的这个纯的这个数仓搭建这个这块呢啊,再分出来,再分出来的话也得十多天的一个时间啊,是这样一个情况哈,所以说数仓这块呢,是越来越重,那企业呢,对这块的要求呢,也是越来越高啊,无论是这个中小型企业,它要求数仓分成,那同时呢,像这种大企业阿里啊,腾讯啊,京东啊啊,那更是更是这个按照分层去做啊。
02:13
那往下看啊,往下看。我们对这个数仓呢,一共分了五层啊,我们上一版1.0的时候也是数仓,我们分的是这个四层,之前上一版分在哪四层呢?Odsd w DD ws以及ADS,那本次这个项目当中呢,我们增加了一个DWT。DWT呢,增加层级,其实呢,是解决了你这个数据啊,比较复杂的时候啊,为了分析一些指标呢,好好去出一些指标,那这时候呢,才会增加一些成绩哈,那像阿里的内部的话,他们1.0版本,阿里云官方他们是四层。那美团的美团是五成啊,咱们这个目前还是五成,那京东多少成呢?京东是九成。嗯,那就说每个公司它这里面的层级呢,其实也不是那么特别一样,再有就是每一层级的这个命名。
03:06
每一个公司几乎都不太一样,因为这块舒仓这块呢,是属于一个江湖大论战啊,啊没有一家说独大,说我这个统一了这个相应的这个标准啊,说就第一层就叫什么ods,第二层就叫DD,没有没有这样一个说法,就包括我刚才给大家介绍这本书的时候,这个工具箱,我说过这本工具箱呢,它是一个纯理论派。他没有并没有去实操,那这样呢,就导致呢,这个各家呢,就是拿到这套理论呢,每个人对这个理解呢,都不是特别一样啊,最终呢,大家都想拿这套理论去解决自己的这个实践问题,那在实践过程当中呢,就会产生,嗯,产生出这各种各样的这个流派和分支,对吧?但是总之呢,干的这个事儿都差不多,就是做的这个事儿差不多,但是呢,一些名字啊,啊包括一些啊小的一些细节上会有略微的一些区别。那我们来看啊来看,那首先呢叫ods层,这一层呢,一般这个名称啊,都叫ods层啊,这个变化呢,不是特别大啊,基本上都叫原始数据层叫呃,Operation data store叫原始数据层,那这一层是负责干什么事儿的呢?啊,为什么都都有这一层呢。
04:16
哎,它就是数据过来之后叫存储原始数据。不做任何修改啊,叫什么数据保持原貌,不做处理,直接加载原始数据。不动,那同学也不理解了,说你这个收藏数据加载过来之后你不动。那你放着干嘛呀?哎,它起到的是一个什么呢?叫备份的作用。起到是一个备份。啊,因为在大数据这个场景里面啊,大家要记住一件事,数据呢是最重要的,磁盘是最不值钱的,也就是说宁可我多耗费点磁盘,但是我数据不能丢,因为如果你数据丢了,那这事就马大盘了,对吧,那个公司这个价值或者大数据团队这个价值就没有了。啊,无论如何你不能把数据玩丢了,那么就带来了,就是我们这个ods层,哎,我就往这一放干什么呢?往这一存储作为一个备份,你其他层你爱怎么玩怎么玩,哪怕说你在这个解析啊处理啊过程当中,咔咔算错了。
05:14
没关系是吧,为什么没关系呢?我ODI上再解分就完了。对吧,就像那个,嗯,像那个班长对吧?啊,喜欢看一些岛国的这个资料啊,岛国的视频,那他他如果看视频的过程中啊,如果这个不小心把这个视频坏掉了,那他得多伤心呢。那是怎么办呢?哎,他会把这个东西啊,提前备份好一份。备份到一台电脑上,我看的时候呢,我先把它拷贝过来。对吧,哎,拷贝到另一台电脑上,然后偷偷摸摸的一看,对吧,哎,看看,假如说在看的过程当中,这台电脑崩溃了,没关系,只有副本啊。啊,就是起到这么一个作用哈,所以说OD其实本质上来说,他什么也没干。啊,就是创建了分级表啊,压缩,然后保持数嘛,拉住了压缩大家都知道吧,因为它过来的数据就是压缩的,因为我们是ad上存储的时候就已经成了格式。
06:07
然后呢,创建分区表,分区表呢,只是为了方便一个管理。啊,每天一个文件夹嘛,一个文件夹管理起来多方便呢,对吧,那剩下的事就什么也没干了啊,比如说OD层什么事没干,那之后呢,来到了这个DWD层。DWD的叫date warehouse。啊,叫明细。那到这一层的时候哈,这个不同家公司叫法就不一样了,也就说这个接下来这个城的这个名字啊,你就不要太太在意了哈,但是呢,你只要拿出咱们这个名字的话啊,可以积压全场啊,直接这个对方应该是能够接受的啊,因为咱这里的对标的全部都是大厂。前面这个这四层呢,对标的是这个阿里啊,另一面呢,对的这个美团这块呢,不用有任何担心,咱们这个名字都是非常非常标准的,你像那个起那种萨这种名字,那就很low了啊。呃,往下这个呢,是DWD层啊,结构呢和力度呢与原始表保持一致。
07:03
啊,袁水这个力度啊,力度是什么意思呢?后面会大家说,那这里面简单提一下,什么叫力度呢,力度呢有一行。这是一个力度,那一行一条日志,那还有一周。一周这个用户干了什么什么事儿,那他的力度呢,就是按周,那还有这个一个月,一个月这个用户了什么事,你说这一个月他的销售额啊,这都是它的一个力度。那你想想,如果给的一条日志里面,存储的一条日志里面哈,存储的是这一个月这个用户这个消费了几次。那我让你统计这个用户。的一月份的某一天吧,我让你统计某一天他的销售额,或者是这个下单次数。那其实你就统计不了了,你捋一下这个逻辑啊,如果这一条日志里面记住的是这一这个用户一个月内下单的次数。那我想统计这个月当中某一天他干了什么事,他的下单次数多少?
08:03
哎,那它的力度呢,相当于就比较大,比较大呢,就算不出来更细致的内容,它只能按月去统计了。啊,那这个出力度呢和细力度呢,有各有各的好处哈,各有各的好处,先不着急,后面的话我会嗯再进一步的解释,那它这个力度,这个力度呢,与这个呃原始表呢是保持一致的,你说跟这个ODI你是什么力度,那我这块呢,就是什么力度,你是一行,我这一行你是这个按月,那我这这一行呢,就是一个月。你呢是一周,那我这边就一周啊,是这个意思啊行,然后呢,对OD层的数据呢,进行相应的清洗。那为什么要清洗呢?这个好多同学可能不太理解,那ods层过来的数据,你拿过来就直接能用吗?比如说你未来直接就能分析吗?啊不能,因为这里面有一些数据啊,各种是空的。呃,比较这个差的情况下,连你那个组件ID它都是空的,那你觉得这种数据能用吗。
09:02
对吧,还有一些核心的数据,比如说用户ID啊,用户信息没有,商品信息啊,商品ID也没有。啊,一千一还有这个交易额没有,哎,那这些呢,你要提前把它过滤掉,你不能把它放纵到后面这几层,我要踏踏实实的去分析指标的时候,你告诉我这个数据,这条数据不能用。不能用的后果是什么呢?你用什么is now啊判断啊,他直接就崩溃了,有的时候。啊,有的时候就崩溃了啊,它出现各种这种脏数据哈,所以说那这个提前要对这个数据呢进行清洗,那你们日后呢,这种岗位叫什么呢?叫ETL岗位。在大数据场景里面,这有一个专门的岗位,就专门来负责清洗数据的啊,往往是一些比较菜的菜鸟是吧?啊用它来清洗,那像ETL清洗工具这块呢,我们这个本质项目当中,你直接用circle就行了。嗯,准确来说叫海口。对吧,哎,写这个查询过滤条件呢,什么YW1RE y某一个ID,它等于空,我就不要了,直接抛弃了啊不等于空,那留下来啊,这不就是物理条件吗?或者这个Y2这个呃,这个交易额啊,什么这个交易额配。
10:13
然后呢,它得大于多少我留下来啊,小于多少给干掉。啊,这都是ETL,包括你们之前用ETL的时候还用过谁呢?二。就是hi的时候,你们写了一个ETL,这个清洗的mmr,那里面呢,是判断一个字符串的长度。啊,这不段长度是否大于什么15啊,如果大于的话,OK,那这个数据正常,如果小于的话,相当于这里面一共就获取了这个啊七八个啊七八个字段,那这个数据就不能用了,哎,那你就必须把它提前过滤掉。行,这是用MRETL,那除了这个用这个emr之外,还能用什么呢?写这里吧,嗯,ETL工具哈,也就是在企业当中你用到的ETL工具有什么呢?有have当中的这个口。
11:08
开当中的mmr,还有Spark,日后你们学的这个Spark Spark里面呢,就是Spark circle。还有。还有Python。啊,Python各类公司用的是Python,比如说用那个,尤其是做机器学习的啊,他们往往习惯的用这个Python的去处理,因为呢,他们不懂这个。呃,像这个跟Java呀,Java语言呢,还有日后我们学的这个scar语言呢,现在来说用起来呢啊,他们比较比较生疏啊,他们用的这个Python比较多,所以说会用这个啊,那还有呢,是这个开头,开头呢是属于专业的用来做这个亚洲清洗工具的。它的特点呢,是这样。呃,左侧呢,是类似这种工具,比如说放了have,放了h DS base red啊等等这些组件都往这一放,那怎么用呢?这块呢是一个控制台。
12:04
你只需要把这个主件拖过来,比如说我拖坏了一个have过来。然后他们再投一个海呢。那我就会通过这个have连到这个have上,然后清洗完,就相当于在本这个have里面从一层清洗到另一层,把数据过来,中间这块写什么呢?写色口就能够实现,那如果你这块写个have,这块放了一个是这个呃,H base。也可以。直接连上就一连线,然后配置一下写circle就能对公实现,它主要用用于给什么人用的呢?这个不懂技术开发,你说不懂你这个什么have啊,这个也不懂,你是底层是什么SPA安装啊,我都不需要,我只需要会拖拽就行了。脱带完之后一点一点。你说连接上就行了,你像我们连接MYSQL的话,不就是那四要素吗?对吧,一个URL用户名,密码加上一个驱动,那它这里面也是,而且呢是采用这种图形化页面配置的形式。
13:00
给你的配置上之后呢,中间只关心业务逻辑啊,往往呢之前啊之前呢,就是那种呃,学的特别差的同学。特别差的同学啊,他呢,呃,就可以,只要会这个开头工具,那就能找一份这个至少能找一个1万以上的一个工作哈,啊,但是呢,一般的都是那种外包。啊,外包大公司的外包,像什么之前那个平安啊华为。呃,在深圳那片啊,往往呢,就是靠这个啊,你只要写写这个业务逻辑就完事了哈,所以呢也比较简单,这是这个ETL工具有这么多啊,要知道一下。行啊,这呢是数据清洗啊,判空处理账数据,还有呢,是一些这个超过极限值范围的一个数据,比如说那个金额啊,它出现了负值。对吧,明明这个交易额呢,应该是正的,但是他来一个负的,那这种数据呢,往往都是要必须要干掉的哈。
我来说两句