00:00
那咱们简单画个图。嗯,烟铺的。啊,那我再来一个啊,T test。来找一个这玩意儿,诶这个找错了啊,不要它。T。找这个啊行,那现在咱们画个图啊,画画这个数仓到底是一个什么样的一个东西啊啊那数仓数仓我们要呃里边要存储,要管理,要分析数据对吧?那数据肯定得有自己的来源啊,那我们在呃咱们公司里边,我们数仓的数据来源,或者叫我们BI的数据来源主要来自于什么地方呢?啊,我们来自地方呢,可能有以下的几个,来大家一起看一下啊。哎,它主要来源于咱们公司的业务系统。啊,这个业务系统是一个什么概念啊,什么叫业务系统啊,啊比如说咱们,呃,我们公司是一个什么,是一个电商啊,是一个电商的公司对不对,那你电商公司就得有一个电商系统啊,这个业务系统是用来干什么的啊啊就是用来支撑咱们哎所有的这个用户的各种请求的啊你比如说我我现在咱们有一个电商对吧,那电商我我会有各种各样的客户端,这个大家应该比较熟悉啊,有什么移动端啊,手机里边APP啊,是不是还有这个PC端有页面对吧?或者还有这个什么小程序啊等等,有很多客户端啊,那这些很多客户端,我我用户使用的时候要干啥要要比如说要注册我要这个加购物车,要下单我要这个支付等等,是不是有各种各样的这种请求啊,对不对,那这都谁来来响应这些请求呢?就是咱们的,哎业务系统。
01:34
啊,业务系统啊,那我的业务系统呢,那肯定是离不开咱们的数据库的啊,其实这就是相当于一个加入E项目对吧,我肯定是离不开咱们的数据库的啊,那为什么呢。再想想你是不是在存储,储存我们用户在使用过程当中的一些数据啊,比如说我用户我第一次用,我要注册,那注册你的用户信息存哪儿啊。数据库里边呗,对不对,那我用户要下单,那你下单你那个订单数据存哪呢。
02:01
数据库里边对不对,那我要支付,我的支付记录对不对,我要加购物车,我的加购物车记录等等存档数据库里边对不对,所以说我们的业务系统呢,肯定是离不开这个数据库的啊,离不开数据库的。那这是我们的首先是哎,咱们的业务系统啊,咱们得搞清楚,因为业务系统我有一个数据库,那也就是业务数据库当中呢,实际上存储了很多跟咱们用户相关的数据,对不对啊,那那你说这些数据他有没有分析价值呢?那肯定是有的呀,对不对,我我能够从这里边去统计一些啊,比如说用户他的这个呃他呃当然做一些简单统计,比如说用户下了多少单啊,然后支付了多少,对不对啊,然后呢,我这个商品卖出去了多少件等等,这些简单的统计,我从这里边是不是都能都能做出来,对不对啊,或者说我甚至高级一点,我能够,呃,根据咱们用户的架构,或者是他的下单行为,是不是去获取一些他的喜好啊等等等等,可以做用户画像等等等等,是不是这样的呀,所以这些数据呢,是很有分析价值的啊,那所以说我们的这个数仓,也就是我们的或者是我们BI系统,我们这个数据的来源之一,就是咱们刚才提到的,诶这跑下面去了。
03:12
这就是刚才咱们刚才提到的,嗯,你给我下去。哎,下不去。Send To Back,诶这个不听话呢,这个重学重学,我重新考一个啊,我再新来一个啊,就是刚才咱们呃分析了一下啊,就是我们的数据业务系统当中,咱们这个数据库实际上里边的数据是很有这个分析价值的,很有分析价值的,所以说我们的第一个数据来源就是于关型数据库。啊,这是我们的第一个数据来源,那其实我们数据那个数据来源呢,也不光只有这一个,那还有什么呢。哎,还有我们的,呃,这个通过买点啊,通过买点在哪买点,在我们的移动端买点,比如说我的APP里边,比如说我的PC端啊,我这个页面里边啊,在里边买点去干什么呢?去收集咱们的用户行为,去收集用户行为啊,然后呢,这个用户行为会写到什么地方呢。
04:08
会写到我们的诶磁盘文件当中啊,这就是我们常说的什么东西啊,用户行为日志啊,用户行为日志那在这边呢,我们给它起个名字叫做什么呀,叫做诶log啊好,那这个关型数据库里边的数据咱们好理解对吧,但是这个log它到底是诶什么意思呢?你看前面咱们一直在讲啊,什么是一个呃日志采集传输框架对吧?那它采集的日志到底什么日志的,其实就是咱们这提到的这个用户行为日志。那用性日志,那用户形容日志怎么来的?刚才咱们提到了一个关键词叫做买点,对吧?啊叫买点,那什么叫做买点呢?咱们现在举一个小例子给大家看一下啊。买点首先是一般情况下怎么埋在咱们的客户端的,我们叫做前端买点啊全买点,所以前端买点怎么理解,比如说这是我的一个页面啊,一个页面,呃,大家可能没有学过这个Java对吧?可能对这个不太了解,咱们大致简单说一下啊,那我这一个页面都是一个什么东西呢?你可以呃就是一个HTML文档加是吧HTML,那HTML当中呢,我有什么样啊,我有各种各样的标签对吧?啊或者各各各种各样的什么呀,各种各样的这个呃元素啊,各种元素,那比如说我这里边有什么,假如说有呃各种链接啊,有链接啊,就页面上有链接还有什么呀,还有比如说啊有什么呃按钮啊,还有什么,还有这个输入框啊,输入框啊,那还有其他的一些这个组件,其一个组件,然后所谓的买点是什么,在页面上可以嵌入一些,比如说咱们的GS这个代码,GSJS就是javascript,这个是用在我们前端的这个一些这个代码,哎,咱们也是简单了解一下啊,就这代码能干什么啊。
05:52
它的作用是这样的。它能够注意认真听,能够去采集或叫做收集你在页面上所做的所有的操作,比如说我点了什么按钮了啊,然后呢,我诶按了什么这个这个按钮了,我我点了什么链接了,我在输入框里我输了什么内容了啊,你这段GS代码了,它都能够采集得到啊,都能采集到,采集到之后呢,它会把它采集到的,你刚才的这一系列的行为怎么做呢?诶发送到一台专门用来接收诶用户行为日志的服务器啊,这样的服务器,我们管它叫做日志服务器。
06:30
啊,他会把诶数据发送到这里边,那日志服务器接收到你这个日志的请求之后呢,会怎么样,会把你的日志落盘,诶落盘就变成一个日志文件了呗,相当于对不对啊,那这就是咱们所谓的用户行为日志。啊,用行日志,那你像刚才呃,咱们这个提到了,我们这个flow是不是用来采集日志的呀,对不对,那我要想收集这个数据,那咱可以怎么办?是部署一个flu采集的去监控这个文件,然后把数据发到咱们大数据的分析系统啊,啊是这样的,这是咱们第二一类数据源,叫做用户行为日志啊用咱们其实现在呢,可以去看一个小案例,对吧,咱们之前在学的时候,老师有没有带大家看过呀。
07:14
有没有看过啊,比如说打开一个页面去看一看这个所谓的用户行为日志有没有看过呀,咱们简单看一下吧,那咱们比如说就看一下这个网站的。啊,那现在咱说就来了一个电商的页面呀,对吧,那假如说我现在我点一下这个手机,我点下这个手机,在你点这个手机的这个过程啊,它实际上这个页面上就会有买点,它就会把我们刚才点击手机的这个行为啊,给你怎么样给你收集起来,然后发送到他自己的日志服务器里。啊,这里边就有一个这样的过程啊,当然他他他发送的不光是你这个行为,他还会收集很多我们个人的信息,用户的信息,比如说啊,你的这个所处的位置,你你电脑的这个,比如说你的这个系统啊,你的这个使用的浏览器啊,你的这个什么屏幕的分辨率等等这些信息都能够获取得到。
08:06
啊是这样的,那这个东西我们实际上是可以看到的啊,那怎么看?呃,我们在这儿呢,打开这个按一下F12 f12打开这个前端的调试工具。啊,浏览器里边都有啊,这都有,那完了之后呢,我们可以呃来到就是刚进来之后应该是这个位置,那咱们点哪呢?点击这个位置network,那这里边会有各种各样的这个网络请求,那咱们现在我刚才来怎么来到这个页面了,我是不是通过点击那个手机进来的呀,对不对,我现在重新刷新一下这个页面来刷新,那现在刚咱们点击又重新做了一下啊,你会发现啊,这里边呢,我们有各种各样的请求来把这个关掉。哎,这就是它这里边各种各样的请求看到了吧,啊完了之后呢,我们这有一个filter叫过滤器,那比如说我们就搜一下跟这个log相关的啊跟log相关的,你看这里边是不是有呃一个这个相对请求啊,诶log点什么东西,那这个东西呢?哎,咱们把它copy出来copy。
09:01
然后呢,这个link address啊,相当于获取它那个链接啊,完了之后大家也发现了这个链接,它里边是什么样的呀,是不是经过编码了呀,对咱们看不懂,那所以说我们可以尝试着给他解个码啊,咱们找UI啊这个解码啊解码。啊,解码工具。好,那咱们就用这个啊,完之后呢,把刚才我们这个内容,然后来点击呃,URL de扣解码啊文来这时候呢,就能够首先能看到中文呢,说明咱们解码成功了,对吧?啊解码成功了,大家可以看一下啊,这个是他所请求的一个呃地址来请求一个地址,然后后边呢,是不是哎,通过这个参数传进来的很多信息啊,很多,咱们可以大致的来看一看这里边的东西啊。来我们看一下呃,找几个大家能看懂的啊,比如说这个什么UID哎等等等等sidd这就什么都是相当于咱们用户的标识对吧,它自己的一个标识,然后后边呢,还有什么,比如说呃,这个位置啊SR这是啥?这我电脑屏幕的分辨率对吧?啊然后后边呢,这有什么语言啊,然后呢,呃这个是什么,这是你刚才你所点击的那个那个东西对吧,我是不是点手机了呀?诶这这是它能诶获取到你这个呃路径,然后边呢,你的这个这些东西,然后系统,然后浏览器啊等等的版本,哎等等各种各样的信息,它实际上都能获取到啊这是呃当然下边了,还有一些其他的一些东西,咱们就不再一个看了这个内容,呃,目前来说大家可以不用关注,大家重点关注什么呢?
10:30
观察这个格式。啊,格式,这个格式是不是都是都是它呀,相当于。可学文建制度对吧,科学建筑对,也就虽然这一条信息,咱们直接看它不是一个结构化的,它这属于什么,属于半结构化对吧?但是最终这样的数据能转成什么样的,是不是能转成结构化的呀,只需要我们自己去解析一下就行了,转成结构化,那只要能够转成结构化的数据,那大家想你就能怎么样的。是不是就能把日志数据给它导到have表里了,对不对,导到have表之后,那咱们就能够进行SQ分析了啊,是这样的啊,也就是说我们的所谓的用户行为日志,就是咱们刚才给大家看到的这种啊,这是通过咱们前端买点产生的啊,然后发到日志服务器,那咱们要做的就是采集他的日志,然后把日志放到书仓里,然后进行统一的处理分析。
11:21
啊,这是咱们的两个数据来源啊,是来源好,那两个数据来源呢,我们得呃想办法给它干什么呀,给它放到我们的数仓里面,对对吧,那我们数仓的主体大家应该都知道是啥,是have对吧?那have的数据放哪呢?放在HDFS上面。好,那接下来呢,我们来分析一下咱们这个数据的采集应该怎么做,那比如说我这儿要采集的是谁,我要采集的是咱们的这个,呃,日志,那日志咱们用谁啊。用谁比较好?那肯定是用flu嘛,对吧,咱们大家是不是学过flu嘛,它专门就是用来采集日志的,那所以说咱们这儿他用flu,那业务数据也就关型数据库,我怎么导到出仓里边呢,怎么导到HDS上面呢?诶可以用上,诶对这个没学过,但是大家有有听说的,对吧,咱们用scoop啊scoop。
12:10
啊,这个我们后续用的时候再学啊scoop好,那这样一来我们数据呢,是不是相当于就能够从咱们的数据源,一个是从数据库里边,一个是从咱们的诶文件当中是不是就采集到了咱们的HTS上来,那到了hfs我是不是就想办能够想办法把数据放到have表里了,对不对,文件到表怎么导。漏的一下是不是就过去了啊,对不对,这是大家应该能知道的啊,那剩下的事其实就是我们后边数据仓库的内容了,那书藏里边我们需要进行什么呢?我们需要进行这个数据的诶分层建模呃,在数仓我们后续呢,大家会看到啊,咱们的数仓目前哎采用的是五层的一个架构。啊,五层的架构啊,呃,咱们分别叫做ods啊,没事,你那个不知道叫啥意思,没没关系啊,咱们这儿不用管它啊ODSDWDDWS,那后边呢,DWT,然后再往后呢是ADS,咱们分为这样的几层啊,分为这样的几层来往后拉一下啊,那每一层我们都相当于是什么啊,这个所谓的分层,其实大家不用太担心,这每一层里边就是若干张表啊,一层一些表,每一层都是一大堆的害务表。
13:24
啊,只不过就是咱们每一层我这个数据的,哎,这个功能是不一样的,比如说ods层我是干什么的,比如说是保留最原始的数据做个备份,相当于对吧,那DWD我要干什么?呃,DWS要干什么,这都是有不同的职责的啊,这个建模的目的是什么呢?保证咱们这个数据呢,能够更加好用啊,后边用起来会更方便,对不对啊,是这样的啊,这是咱们的目的啊好,那这是我们这几层啊,这我这几层。啊,那数仓建完模之后,实际上咱们数仓的功能就要完成了,那后续会有什么呀。后续是不是会有各种各样的分析应用啊,对吧,因为咱们数仓并不是数据的最终目的地,不是数仓你放在里边,数据放在里边就完了,你后边是不是得用这个数据啊,对不对,那我们后边会有什么样的数据呢?啊,那我们最简单的最常见的,比如说报表系统啊,我需要将我们呃,这个数仓每天统计出来的一些结果呢,做一个可视化的展示,因为可视化的展示是不是呃更那什么呀,更直观一些呀,就是咱们领导看起来更方便一些啊,比如说我整个饼状图,整个趋势图啊,我我一下就一目了然啊,所以说这个可视化的大屏,哎,是很啊这个常见的啊,这个书藏的可视化啊,那这是第一个应用,那其他的呢,更高级一点的啊,比如说我的数据的数据挖掘啊,再加再比如说专门用来分析咱们用户行为的用户画像,对不对,那再有什么呀,比如说咱们的,呃,还有这个机器学习啊等等等等,这都是咱们后续的数仓,后续的应用啊,呃,当然呢,这里边最简。
14:59
选择报表系统,那像比如说机器学习,或者是呃数学挖掘等等这些东西呢,就要求大家呃,对算法啊,对这个呃,数学的这个能力要求就高一些了啊是这样的啊哎,这个都是咱们收藏后续的应用啊,收藏和应用啊,那在我们后续的书藏里边呢,我们会加入一个诶这个东西。
15:19
音input哎,我们会加入一个这样的东西啊,就叫做这个报表,这个报表系统啊,或者叫做可视化啊,叫可视化系统啊,那到时候大家能够看出来一个效果,我们有一个大屏,然后里边呢,会有各种各样的统计结果,比如说出个呃中国地图啊呃,统计一下每个省份,我今天的,比如说咱们边电商,那这个订单金额呀,啊销售金额呀,等等等这样的一些东西啊,能够看出来啊这个可视化啊,那可视化呢,当然你的这个可视化所需要的这个数据呢,来自于哪儿呢?来自于咱们的这个数据仓库啊,来出仓。啊来书仓哎,大致是这样的一个过程啊好,那这个咱们后续做的时候再详细的说啊,那我们现在目前呃正在呃尝试着往咱们书仓里边也并入一个这个呃用户画像啊,但是目前这个研发工作还没有做完啊,没有做完啊,所以说呃,咱们到底能不能赶上这个还不确定啊,还不确定啊行,这是咱们这个后续的一些应用啊,然后咱们数仓大致的这个功能呢,就是就是这样的,大致功能就是这样啊,然后大家可以简单来分析一下啊。
16:24
分一个什么问题啊,我们这个数仓它的数据来源是哪呢?是DB和log对吧,你像这里边的数据,它是不是每天都都会有新的数据生成啊,说日志每天都会有新的,业务数据也会每天都有新的,对吧?那所以说咱们这个数据呢,呃,我是实时,是不是需要把咱们的数呃数据呃,只要有新的,我是不是都得导到咱们出仓里去分析呀?啊是这样的啊,那咱们这个分析数据呢,我们分为这样的两种方向啊,一个是离线分析,一个是实时分析啊那咱们的数据仓库呢?啊,咱们目前这个数仓项目,咱们是离线输仓,做完离线输仓之后呢,大家还会有一个实时数仓啊实入仓,那实时数仓咱们现在先不管咱们说离线啊,就是离线,那什么叫做离线处理呢?
17:12
离线处理呢,实际上跟咱们的批处理是相对应的啊,批处理所谓批处理就是说哎,我的数据啊,写完一批之后统一进行计算啊,这叫批处理。啊,这叫批处理啊,那咱们的离线入仓就是批批处理啊,就是批处理,那离线入仓它这个批,呃,一批是多大呢?一般情况下我们是一天的数据啊,统一进行一个计算。啊,就是比如说啊,我这个一天完事了,咱们这是多少号,9月12号对吧?啊,那9月12号这一天的数据什么时候才能写完呀,什么时候才能才能采集完呀。是是只能到了9月12号的24点,是不是才能采集完呀,对不对,也就是说你的数据到24点才能完事,那什么时候分析二十十二号的数据呢。
18:00
那就得13号去了,对吧?啊,所以说咱们离线入仓呢,哎,都是怎么样的,都是每天分析前一天的数据,能理解吧?啊,这是咱们离线入仓啊,离线入仓啊,那每天分析前一天的数据,那也就是说我们这个数据呢,需要嗯天天计算,天天计算,只不过每天计算是前一天的啊,然后大家要注意了啊,注意什么问题,你看啊,咱们只要这个数仓搭建完成之后,你看比如说我数据的采集,然后呢,数据放到ods到DWD到DWS到D加T到ADS,那这是不是一层一层的呀,对不对,那你说这样的一套流程是不是,只要你开发完之后,那要做的就是啥呀,就是每天。相当于是重复执行了吧,对不对啊,因为你这个逻辑都是一样的,只不过你每天就是来新的数据,来新的数据我就按照之前的逻辑再算一遍啊,也就是说咱们这一套流程呢,是需要每天都重复执行的啊,对不对,既然每天都要执行,那我们这里边儿肯定得需要一个什么东西呢。
19:00
肯定得需要一个定时调度系统,对不对,因为这一套流程你不可能说每天都手动的去一个一个提交,对不对,那肯定不现实,我们需要一个定时的调度系统,这个定时的调度系统,哎,咱们用谁呢?啊,前面有同学其实已经提到过了啊,就是a az,哎,KA边叫做阿斯卡班,哎,它是专门用来调度咱们这个这个流程的。啊,那当然我们同样的东西呢,还有其他的,比如说屋ZZ,比如说air flow等等都有,诶都可以实现类似的功能,这些东西咱们后续会做对比的啊,啊,那这个实际上基本上就是咱们这个出仓里边这个比较核心的东西了啊,那有了这个阿斯卡班之后,那我们这一整套的流程相当于就能够每天自动化执行了啊,咱们就不用再人为的去干预了,也就是我们出仓其实前期开发完,后续就相当于是自动调度,然后如果说有什么功能需要升级,那咱们再去改,这是这样的一个过程啊好,这就是出仓。
我来说两句