00:00
啊,上节课我们详细的叙述了数据仓库的数据来源,包括呢业务数据,用户行为数据,以及呢爬虫数据。这么三大类数据,那接下来我们要思考的问题就是我们如何来处理这三类数据。对吧,哎,我就是在我们书商当中,到底怎么来对这些数据进行一个加工。好,那下面我们来看一下。打开这张PPT啊。呃,这是出仓的概念啊,我们再次啊阐述了一下,舒仓呢是为企业制定决策提供数据支持的,所以说这句话非常重要,所以说这也就是我们大数据为什么在企业里面这么受待见,因为老能为老板带来这个收益嘛,啊,所以说我们的价值比较大。那下面来看一下啊,我们的数据呢,主要有这么三类,爬虫,用户行为以及业务,其中这个爬虫啊,我用这个虚线标出来了,也就说呢,不建议大家在企业里面使用啊,因为呢啊容易给你带来不必要的麻烦。
01:01
好,那下面我们就是将这些数据传输到我们的数仓当中,进行一个数据分析。那我们数据仓库用什么来搭建呢?哎,是我们非常熟悉的这个框架,叫have。用它来对海量的数据进行一个分析。哎,其实呢,这我们用的是have on。啊,后面我们会详细介绍啊,为什么用have one Spark引擎来处理。啊,那也就是说我们的数据来源在左侧,我的目标地址呢,在这个have当中。那怎么把数据传过来呀?对吧,哎,首先第一个用户行为数据,我们这里面采用的是框架来进行一个处理。那你要用什么框架,你要分析好它对应的数据类型,对吧?啊数据类型,那左侧这块呢,我们是以文件的形式存储的,右侧呢,我们是把数据存储到have当中。
02:00
哎,那这个我们其实have,它底层存储是不是存储在HDFS里面呢。这样一个过程。啊,那为什么选择flu呢?其实市面上除了之外还有很多其他的框架,比如说log stack呀,对吧?哎,它也能够进行采集认志,甚至你写一个Java程序也可以读取,对吧?L流的方式读取进来之后呢,再把这些数据通过HTS客户端的方式put到as。是不是也可以?那我们为什么选择辅助呢?首先它是一个开源免费的,而且呢,在各个大厂里面,诶使用的非常广泛。哎,它的传输效率呢,也比较高,使用简单,这就是我为什么选择这个。那下面再思考,那么这个业务数据用什么框架来传输到对应的have当中呢?业务数据。我们业务数据存储在哪里?是不是存储在my circle当中?
03:00
那好,那大家对这个SCO啊,他现在比较陌生。那就用你以前学到的技术,能不能完成将业务数据上传到当中?这块很关键。哎,一定要开动你的大脑啊,其实学习项目是一个这个思考的过程。啊,那这里面其实你想啊,如果我们写一个Java程序,是不是就可以连接上买口,通过GDBC连接上之后,仍然是用hfs的客户端命令上传到A上。是不是没问题?哎,确实没有问题,能搞定。那除了这种方式,我们还能用哪种方式完成对应的功能呢?那比如说我们可以用do。思考一下。Hi do法为什么也行?Do吧,它有对应的这个输入组件,是不是这个input format。还有一个组件叫output。我们。这两个一个是管理你输入源的。
04:01
对吧,哎,你对接哪一类书源默认的是这个啊,Test file input,比如说读取的是文件。那我能不能读取MYSQL呢?当然可以,你可以在这个自定义input form里面去通过GDBC的方式连接上MYSQL,那就能够读取到MYSQ的数据。那接下来输出输出hi,默认就输出到ADS上,对吧,你不用改都到。那如果说我想输入到其他特殊的地方,那你可以自定义这个output来完成对应的功能都可以。是吧,哎,所以说这块呢,要脑洞大开啊,其实呢,这个scuba这个框架啊,底层它就是海度。只不过呢,他这个hi do,它是由这个四个map。啊,四个map组成的,比如说没有reduce,因为它不需要聚合,只需要一个传输就行了。好,那了解一下,到这也就说我们可以通过框架采集用户行为数据,通过school框架来处理业务数据。那好,那数据就已经能够上传到数场里面了,那在数入仓里面我们要干什么事呢?
05:05
大家思考一下。哎,出来这么啊,五个单词是吧,啊,一个缩写说ods DW ddwsdw tads,什么意思呢,懵了。那大家思考问题啊,假如说没有这个分五成。那么你想把这个数据汇总过来之后。那万一后面你在加工数据的过程当中,突然间加工坏了。有这种可能吧,或者处理失败了。产生了一些脏数据啊,原始的数据也没了。那整个数仓是不是就瘫痪了。那你想,那你作为收藏的设计者,你要做什么事呢?但我们首先思考的说,我得做一个备份呢。哎,防止受伤当中后续的任何处理操作产生了意外,那我还有最原始的数据。那其实哎,这个舒畅我们也是这么想的。我们就把数据首先备份到OD当中。
06:02
不做任何的修改。那这样的好处就是你后续任何一层发生变化,我这边都能够快速的拿出来数据啊,最原始的。那再思考。说呀,我要分析某一个指标的时候,我需要对一些数据进行清洗,什么叫清洗呢?我举个例子哈,你过来这个数据啊。有可能有一些重复的数据。那怎么产生的重复的呢?你有可能重复的爬虫。或者呢,你在这个,哎,发送到日志服务器的时候,这个用户行为数据啊,我连续发了两次卡死了或怎么样。还有一些数据呢,是过期了,你发过来的时候啊,这个时效性可能是十年前的数据了。那这种数据我也不想要对吧,还有一些日志呢,本身发过来它就不完整,什么叫不完整啊,一共他十个字段,但你传过来之后只剩五个字段了,那这种数据就不可能要啊。那由谁来完成将这些张数据干掉呢?那其实就是我们这个DWD层就完成数据的一个清洗。
07:06
啊,首先我们把数据都整理干净对不对?好,那接下来再思考。啊,在大数据场景下,其实比较慢的操作呢,就是这个招引操作。那么如果你后续每分析一个指标,我都要在前面进行一个招引。有时都要进行交易炒作。那你想,那我如何能够提高我的开发效率呢?我是不是统一的,我招人一次。那后续的话,我都从这个噪音的结果当中。去查数据就OK了。哎,其实那这个书场它也是这么想的,这么设计的,它会将这个书场里面哎一些表的数据进行一个招引,形成大的宽表。避免每次的一个重复的交易冲突。那就形成了DWS和DFT。那为什么有个DWSDP呢?因为DWS是按天聚合的,就是把今天产生的所有的数据我整集在一起。
08:02
按按照主题进行招引啊,不是形成一张大表,它是形成多张主题的大表。那好,那DWT又是什么样的呢?他是一个累积型的宽表,是你这个用户啊,第一天来到这网站注册,一直到你当前这一时刻,可能是已经经过了两三年了。哎,两三年的所有的数据变化都会放到这个DWT里面啊,进行一个存储,比如说你第一次下单。对吧,啊,一直到当前这个三年后的一次下单,那所有的数据在是方便我后续的一个统计。OK,那最后这个ad层,那就是我们总说的报表。那就是老板希望能够看到的一些报表,对吧,老板比如说关心今天的日活,今天的新增,今天的交易额,哎,今天的这个留存用户有多少。等等这些,那么在这个ad上的啊,其实我们这个数据呢,是存储在这个MYSQL里面的。那问题就来了,那老板懂不懂买Q呢?他肯定不懂。
09:00
对吧,你说你让老板去看那个结果的时候,需要他自己去敲门,银行去买车,Q里面查结果,那老板非把你开了不可,对不对,那怎么办呢?哎,那接下来就是我们需要制作一个报表系统。那也是我们数仓的一个输出。我们会把我们分析统计完的结果数据输出到报表系统里面去。哎,那报表系统有什么特点呢?它这里面哎展示的数据啊,可以通过这种柱状图。对吧,哎,柱状图也可以通过这种饼状图。哎,饼状图分析,还有这种折线图是吧?啊折线图。那老板一看这个就非常清晰了啊,说我们这个今天的收益额咔啊,涨了对吧,或者下降了,他都能够清晰的看到,这就是抱怨。那除了报表之外,那我们这个数仓还能够做什么事呢?哎,我们的数据啊,还可以输出到给这个用户画像系统,哎,我们后续也有个用户画像项目。那他又是干啥的呢?哎,说的直白通俗一点,其实这个用户画像系统啊,就是给用户打标签了。
10:07
那什么意思叫标签呢?举个例子哈,叭如说这个宋宋老师。他有一个特点啊,每天晚上12点,哎,准时去三里屯加班,哎干活对不对,哎上夜班。那这个事情我们通过这个大量的数据统计,比如说连续一年的统计,他都是每天晚上啊,12点固定出发啊,路线呢,直奔三里屯啊,早上五点回来。那这个我们就能定位出来,他是一个夜生活工作者,那我们就开始在他这个人设上打上一个标签啊,夜生活工作者。那有什么用啊?那他就有用了,他可以为我们后续的这个推荐系统做好数据准备。你想他是夜生活工作者,那除了宋老师之外,是不是还有很多其他的夜生活工作者,那我们就可以对这一类人群统一的进行相关的推荐,比如说推荐他们需要的啊,面膜啊,手纸啊,哎等等一些日常公共用品。
11:04
那这样推荐的效果是不是就更好一些啊,哎,所以说通常这个用画像和这个推荐系统呢,都会绑在一起的,那同学担心了,说海哥啊,我这个算法啊不行。这个能力各方面差一点,但是你要我工程化代码还可以说这个画像是不是我做不了啊,哎,不是这样的,这个画像啊,它是分为这么三个等级,这里面呢,有这个统计类标签。还有规则类标签,另一个呢,就是机器学习类的标签。那么咱们同学能够做的呢?其实是像统计类标签和规则类标签,我们用这个开口语句就能够完成对应的统计分析,是没有任何问题的。那如果说海哥我想这个通过这个机器学习标签,哎,进一步的一个提升自己的能力,那这个呢,就需要一定的算法。啊,也说初级的普通的这个入门用户画像,我们是完全能搞定的,那如果你的实力强,说海哥我也想搞一下机学习。对应的画像标签能行呢,也可以,但是呢,它的起步要求就是211硕士起步。
12:05
啊,这块要注意啊,包括这个推荐系统也是推荐系统,这里面就需要构建这种推荐模型。对吧,来推荐模型,那推荐模型的话呢,确实里面需要一定的这个算法功力啊,以前呢,咱们讲过八七班,八七班的学生啊,但是呢,里面其实啊,咱们是清华的硕士,还有这个,呃,人人大这个中科院的硕士。啊,两个大硕士啊,非常厉害,但是呢,学生呢,一个班也就有那么四五个同学,能听懂就不错了。啊,后来我们就把它这个啊放到官网上了啊,你关注上硅谷交易公众号,回复大数据,哎,是能够获取到对应的这个免费资料啊。啊,那下面往下看啊,那还有一个呢,就是积极学习,那从积极学习啊,它是包括推荐系统的。啊,因为机器学习非常广哈,因为它有这个机器学习,还有深度学习里面呢,有这个涉及到图片处理的,语言处理的啊,音频处理的等等,非常非常广泛,它是一个大的的一个方向啊。
13:01
而且每一个小的方向都会产生N多个博士或者博士后。啊,深不见底啊深不见底,那么这个积极学习和像推荐系统这种涉及到大量算法,我们能不能学呢?哎,如果你具备前面大数据非常强大的实力,以及学历这块呢,还不错,比如说211的,或者211硕士啊,那这种,那你后续呢,可以尝试去住啊,因为他的薪资待遇啊,确实高啊,基本上呢,都是这个50万年薪起步。啊,所以说大家呢,呃,有经历的同学可以去尝试一下啊,那他火能不能火,他火的前提记住是大数据必须得非常非常火。因为不管你多么优秀的算法,他得得都得有海量的数据作为支撑,你没有海量的数据作为支撑,那一切的算法都扯淡对吧,你说你公司一共每天我就产生一兆的数据。我要做机器学习,我要做推荐系统,你觉得他能推荐的准吗?啊不太可能啊,就是这块呢啊大家了解一下。那接下来大家要再思考一个问题,思考什么问题呢?说这是我们的一个数据仓库。
14:04
我这里经过要好好几步的一个加工处理。那问题来了,说我这个数据什么时候采集?对吧,你是凌晨一点产,凌晨两点,凌晨三点还是我产生一条,我就踩一条。对吧?哎,这是一个问题,那还有问题就是我数据到了ods层之后,我什么时候触发把数据到DWD,什么时候触发到DWS。你发现啊,这个好像我们这个项目当中需要很多任务。那么到底什么时候开始,什么时候结束呢?由谁来管理呢?那这里就涉及到了一个叫任务调度。那任务调度工具啊,目前市场上有很多,你像有这个阿斯卡班啊,有屋有airlow,还有这个DS啊,这是一个简写啊,啊国产的一个调度器。啊,有这么多类的调度器,它可以帮我们管理哪一个任务,什么时候出发。对吧,哎,处罚完之后,下一个任务什么时候开始执行。
15:01
对吧?哎,如果说任何一个任务挂掉之后,他还可以帮你去重试。这就是我们整个数据仓库要做的事儿啊,其实学一个东西啊,其实很简单,你要把握住三块,哪三块呢?第一块我数据怎么来。它长什么样对吧,接下来呢,就是我进入到我们这里面。哎,核心系统之后,我如何对这个核心数据进行一个分析处理,加工计算。记,收完之后我的数据输出到哪里,比如说给谁用,未来他能帮我们解决什么样的问题。哎,这就是我们的数据仓库,先有一个宏观的概念,后面呢我们会详细的介绍。
我来说两句