00:00
好,接下来呢,我们看一下这个第五章用户行为数据分析啊,这是第二个文档当中,我们有哪些内容需要我们记住哈,那第二个文档当中呢,其实我们上来之后这一张图啊,用户行为数上,那在这当中呢,我们有这么几张表,ODS2张表,启动日志表,还有这个事件志表,DWD层有这个启动表,还有事件表,因为这个事件表这块呢,解析过程当中遇到了一个中间表啊好,最后呢是DWS,那DWS你看这块是我们的日活,日活月活啊,最后呢是每日新增啊,每日流水明细啊,最后一条报表这么一个过程啊好,那这么一个过程,那我先往下看吧,先先说,那这里面就涉及到这个数据的一个格式啊,有哪些格式,那包括其实包括这个公务字段和业务字段,那公务字段你说之后你在面试的时候至少不要红这些你要记住啊有什么呢。
01:00
设备没标识用户啊,还有渠道,哪个渠道来的应用卡应用惠啊,还有这个,呃,华为小米啊,还有这个YS是什么商市系统,安卓的还是iOS的啊,还有其他的,那还有呢,就是什机型号是什么型号的啊,华为小米啊,魅族VIVO OPPO啊这些啊,那再之后这是购单日期啊,这就还好了,购段事件啊,这几个红的要记住这是事件名称啊,根据事件呢,记不同的拆分,那下面这块呢,就是具体的这个项目经验,等于说这个第五章当中我涉及到一些项目经验,那第一个呢,就是这个元数据备份啊,因为我们把这个还有的原生句是备份到MYS里面,那这个MYS如果挂掉,整个书上这原生据里没了啊,那这个很分风险很高,怎么办呢?把这个MYS搭成这种主重复式的啊,主复式啊,那这个中间这个切换呢,就是这个。Keep来对吧啊,动态的这个切换啊,好,具体的翻译过程在这里面不多说了,那在面试的时候你可以说一下你们的原数据呢,是采用那种高混用的啊,一个备份是加分项的,还有就说你在项目开发过程当中啊,用过哪些系统时间数理函数啊产可能如果你真正的开发的时候,那这些函数你是必用的,如果说你没用过这些函数,那基本跟两个二差不多啊,那比如说你看我们用到了有这个带的啊,这个主要是来理这个月指标啊,年月,还有呢,像这个日期的加减啊,Date代的啊,Day呢,主要处理这个周指标对吧?啊周指标周一周二啊类似周,还有last day主要是最后呢,月的最后一天啊,还有呢,Class那种聚合的,还有最主要的解析,那就是那这些在你的脑海当中是要非常非常熟的。如果变。
02:55
问,你也知道怎么说呢啊,开发的时候用过哪些东西啊,做它是干什么的,那还有一道题呢,就是这个UN尼和UN尼二的这个区别啊,那UN尼呢,主要是这个啊驱虫啊,它自动的驱虫了啊,效率呢,那你要驱虫,那你干的活更多呀,那效率就偏低一些,那英尼呢,它是不对这个接管驱重了,那很显然效率呢就高一些啊,干的不少啊,就高他啊,那还有呢,在摘当中其实有单引号和单引号的一个系列啊,这个属于常识性的一个了解在里面看,那如果你是这个,这是单引号。
03:30
啊,那单引号出来的值,那表示没做任何处理,里面是什么就是什么啊,没有取这个变量对内这个值,那如果是双引号,那你看我取的就是变量里面的值啊,取的就是值,那像这种双引号里面套的单引号,那你进入这种嵌套就看谁在最外边。双引号在一个正页面,那它就起作用,那双引号在这边你看。知道,我就起来了。
04:01
那你看这个单引号在最外面。那是单引号起作用,里面的值不做任何的翻译处理,不做转移。那里边互动保持力量啊,那这叫可以,那还有呢,这是反引号,反引号呢,就是表示执行这个命令,那就直接把这个值打印出来,执行的,执行的就是内的嘛,那就当天的日期啊,那这边注意,比如说单引号,它表示的就是里面是什么啊,就是什么,我不把变量的值取出来,那如果是双引号就取出里面变量的值,那要如果是线套,那就看谁在最外边,双引号在最外边,那双引号取出来,单引号在最最外面,单引号起作用啊,如果是白引号,直接相的命令,OK,那单什么呢?就是碳引擎,那它是一个优化的一个。手段啊一块啊,这个提高了这个呃,运行的一个速度啊,而且前昨天啊,一个老学员问我问题,说那个还3.1.1啊,已经说3.1,好像是说这个已经把这个底成这个mmr默认就改成了太啊直接改成T啊语速度新版本的啊,这个我还需要去查一下老师这个为什么啊,中间不落盘啊,对吧,你的还把RA在磁盘结,我在今天磁盘上尤其卖不进来之后,就放在磁盘上等待拉取,那我不是放在磁盘里面,放在内存里面,那我是不是就快了,同时他期间还对这个账进行这个作业进行一个优化啊,省去了一些中间环节,那它效率就自然就高了,这是这个好,那后面呢是这个ods层啊,做了哪些事,其实ods层我们这里面就一个字段,对不对,就是一个接身啊接身支符号,那这里面注意OS层其实我们做了重重压缩。
05:50
拉手压缩吧,哎拉压缩啊,为什么这D压缩做了拉压缩呢?嗯,它主要其实是它数据量比较大拉是不可以支持芯片的啊,这是芯片上好,那后面呢DW地程,那D地上这块呢,最主要的是这个盖和阶层和钙啊,因为它去解析一些啊数据啊,同时呢,还用到了这个。
06:13
自定义udf和utf啊,刚才已经说过了啊,一个是解析工时段,一个解析这个实验字段啊,包括他们的重写这个步骤啊,不太多说了啊好,那还有这个就我们看这有答案啊,为什么这个要制定义F啊,其实呢,就是因为方便我们去调试定位啊,这个日志的这个错误啊好之后呢,是这个事件基础明细表啊,那这里面这块没啥点击表啊,把具体的表都搞定详情。嗯,这块完了之后,就到了这个需求一,用户活跃主题啊活跃主题,这是具体的这个实现的一个过程。这一块没啥多说的吧啊,这是一场一场的啊,主要方便大家去复习哈,最后复习的时候可以对照这个表啊,去看一看用户新增我们直奔这个折库这块吧,啊这这块,比如说上面这些指标讲的时候讲了一大堆,那么就是最终你在跟面试官说的时候,是否能能多整一到两句话。
07:20
啊,之前,呃,前一阵子那个面试一个学生去欧盟面试,人家就让他写新政,没写出来两张啊,天天让你们写没写出来,那来看一下吧,第一个如何来分析用户是活跃。那其实就是在启动日志当中啊,他这个ID出现多少次啊,同时要记录对吧?啊就是的一下,那还有一个就是分析用户新征。啊,新增用户,新增用户的特点呢,就是首先他得是当天活跃。啊,活跃了呢,Life的噪音用户新增表他活跃了,你得看他以前是不是新增啊,这1LIFE噪音发现这个用户新成这个ID为空的,那就是今天刚来的啊,那他就是新生用户新成这。
08:14
啊,所以说就这么一句话,你说完,那面试官直接就说就完了啊,类似的像这些下面我不多说了啊,就有这么多指标啊,在这里面增加了新增的指标,像连续三周活跃,连续七天内三天活跃。这都是非常非常重点的指标,你这题要搞定,那市面上那就差不多了,之前大有一道是蚂蚁蚂蚁森林啊,啊蚂蚁森林道题就跟这个这道题就类似啊,这个难度,尤其是最后一道题。啊,这种题搞定了,那就是阿里这种笔试题,至少你都能过,OK啊这块不能说了,那再往下呢,是这块这个业务数据啊,业务数据那就是第三个文档啊,第三个档的内容,第三个文档当中呢,第一个呢,就是常识性了解,属于SQSQ。
09:02
啊,那呢,其实就是某一个具体的一个商品,具体的型号,那po呢,属于一个出范围的一个商品,比如说iPhone叉,那iPhone叉下面有什么银色的,有什么金色的,128G内存的,有那个6G G内存的啊,它代表一类,它代表的是某一个具体的商品啊,那下面是电商业务这块,那这块要求大家这八张表至少要到位如流,同时你还可以结合我之前给你们的资料啊,如果在脑海当中有20张表,那就完美了。啊,真正的这个中小的企业的有20张表也差不多啊,基本就这个难度,那像这里面也围绕了订单啊,用户支付流水,订单详情,商品三级,三级分类,二级分类,一级分类,这是至少的啊,那后面你可以包括什么登录啊,注册呀啊对吧?啊,什么权限管理啊啊类似的这些评论啊,啊都OK哈,行,那后面的话是业务表关键字段啊,刚才这八张表当中,每一个表当中至少要记到两到三个和一个,比如说订单表当中,你就应该有订单金额。
10:09
啊,有这个订单的创建时间,有这个订单的操作日期,这些都要有,那后面的订单详情也一样,那订单详情里面就要有这个商品ID,商品名称,商品价格,商品数量,那这些东西你要清楚啊,再这个商品表里面有创建时间,价格,商品描述,重量啊一堆。下班不多说了啊,就把上这。这两门事之后啊买这接下来就会问啊表的分类。嗯,哪几类?呃,咱们是分了四类,在企业当中也有分两类的啊,而且还有个别的跟咱分的不是特别一样,但是本质上其实差不多啊,又怎么分呢?有分维度表和实资表和这么两类的啊,有这么两类的,那当然了,咱们是把这个维度表和师资表又进一步拆分,维度表里面又分为实时表和维度表啊,四字表里面又分为是不性实时表和中期性实时表啊这么几类,那同时呢,你还要结合着咱们那八张表,把这几张表给定义过来。
11:12
啊,比如说订单表,它就属于中期性这种变化的表啊,中性时表,那订单详情呢,就属于这种剩余时表,一旦产生就不再就不变变化啊,那像三倍表,用户表就属于这种这个呃,具体的这个名词啊,业务名词了啊,上面有用户,而且数量不是特别大啊,还有像一级分类,二级分类,三级分类,那它就属于这个维修表啊,还有像什么请假了这个状态啊,这种状态码表都属于维修表,支付表呢,这个就属于这个数务型啊,时间表一旦产生就不变化,OK,那同时又涉及到这八张表的导入导数策略,对同步策略,这个是最爱文。啊,你说你怎么导的啊,导的他什么数据啊,对,全是爱增量这个面试官艾问到底怎么导的,那其实这里面就涉及到这么几个啊,增量全量,新增和变化就完了,那记入原则呗,什么叫新增,那这种就是事务型,嗯,这个。
12:16
呃,事物型事实表一旦产生就不变化,只要产生了,那就已经定定钉板上钉钉了啊,历史已经改变不了了,那这个就是就是增量呗,啊质量。嗯,因为以前的数据已经不能发生变化了,对吧?啊,那我就知道了,对,那剩下像这种小数据量小不了就全量全中啊就完了啊只有这种比较麻烦,就是订单这种啊新增的变化,而且呢,最好的也是这个啊,还有就是增量这种全量就无所谓了,那就全过来了,对吧?啊对,所以这首先这个概念搞清楚就行了。行,那后面呢,是这个范式理论啊,这也是家务成员来问,说你这个遵不遵循三万四啊啊,我们书场里面就很少去追这个三外啊,但是你要是买里面通常都是这个追300,但这里面就是这个1S叫属性不可切割,200S呢,不存在不分函数依然啊,那300次就是不存在传递函数依然啊,就没了啊,那这个完事之后是模型啊,其实就是他会问,哎,你的书仓是怎么建模了?嗯,对,怎么建模的,那就这么,你可说新型雪花的星座是吧?啊,那其实是正常情况下我们尽量把它建成星型模型,有新型模型特点呢,就是维度一层啊,雪花模型呢是围度多少啊,围绕着实时表多少啊,那星座呢,其实就是多个四时表啊啊多个时表啊,对,就这样。
13:51
那如果降不成这个机型,那偶尔有一两个这个酒方也还OK,嗯,也能接受啊在这块啊,那业务出仓搭建的过程当中啊,其实就用到了这个啊,啊导出这块不多说了。
14:08
ODS8张表DWD啊,那这里面有一个注意的就是DW程我们做了什么事?啊。降维对不对?呃,所以在这里这个业务表里面最主要就是降维,那那官还会问一个比较常问的就是啊,你这个书场里面,你这个维度是怎么建模的,你们说你不是你这个表关系是怎么处理的,对啊,这没问题,有这个嗯,设值表,维度表啊,这都行,其实你想一想,我们这数据哪来的数买相关的业务数据啊,而且他本身这些业务表当中是不是存在关系啊,他们之间是不是就已经有联系啊,有主外键呢?啊不用懂,那我们需要做的是什么呢?把他这个东西搬过来叫没了。
15:03
是不是得降维啊,如果你完全完全按照他那个业务的话,那你就天天各种照应对不对,那肯定效率非常非常低啊,我们要做的就是把这维度降维这样来这就OK了啊,所以说你要掌握这一条啊,好,那后面我会有统一的答案给他说DWS层就是用户行为发表啊,用户发表表这块呢,我都在后面说,后面有一块这块。框架这块。啊对,这每一层做什么事啊,我在后面再给大家详细说,然后呢,就是尖啊尖这块就是这块让你现场写写这个你得知道啊,其实就是个萨求和对吧,啊这种比较简单,之后呢,是这个转化率啊转化率转化率其实这里面哈,第一个这个新增和日活这个你可以认为是这个新鲜度啊,其实就是用户的一个新鲜度的一个问题啊,那这个呢,像这个另一个用户行为转化率这个呢,其实准确来说它是一个叫漏斗分析啊,是一个漏斗分析啊这么一个过程,那再之后呢,是品牌复率啊,品牌复率呢是有一个宽表,那这张宽表里面呢,是有这个商品啊商品分类。
16:18
还有商品详情吧,啊,这几张表啊,合在一起的啊,还有订单文件。呃,后面的话复购率啊,项目上有多少张宽表啊,这些东西我不在这说了,我在后面说啊,后面一说啊,还有呢是拉力表啊,拉力表这个问的啊比较多啊,就是你们重拉力表啊,做拉表干啥呢?啊,数据哪来的啊,其实呢,我们要创的话就是围绕这个订单啊,还有一类呢,个别的公司就是用户啊,围绕用户去做啊,那像这个拉力表呢,主要就是这个订单,那第一步呢,就是要把那个新政和变化的数据倒过来,那怎么判断是新生和变化,就是看它的操作时间和修改时间是不是今天啊,那是今天呢,我就把今天呢啊拉回来啊,那这里面其实有第一个就是初始化的拉展表,还有一个就是活当中新成个变化的数据,那这两张表进行照应,就会形成一张临时的。
17:16
临时表啊,临时表,然后这张临时表其实本质就覆盖这个初始化拉表,然后才会产生新的化表啊,这么一个过程,那在这个空间中间过程当中,它主要解决的就是。我想修改一个表当中某一个字段,但是呢,我修改不了在哈当中,当然新版的这个哈智能了哈啊新版哈中,那这个不方便,那怎么办呢?我修改不来一个,就道我修改一个表啊,直接拿这个临时表给你覆盖回来啊,就产生这个芯表这种思想啊好,那这个完事之后,后面有一个呃,机器查询啊,机器查询手上那机器查询在这里面呢,我们主要用到了是这个,呃啊还有这个这几个框架,那学了这么多框架,像德鲁1ES啊,都是一种查询的查询分析计算引擎,那他们有各自的这个特点和应用场景啊,那这个面试观呢,有时候问你要设计这个架构,我到底选哪个框架合适啊,什么时候用什么。
18:23
那我们可以稍微看一下啊,那像这个德鲁伊啊,它属于这种实时的处理这个数据的啊,比如说支持这种亚秒级查询,只要他进来立刻就能查出这个数据。啊,非常非常快啊,他进来之后,他其实是做了一个按时间分片啊,而且是预计算那时间这个呃,时间分区,你可以认为时间分区啊,时间分区啊,然后预计算啊等等,而且基于内存啊,计算效率非常高,但是呢,它只的是单边。只有一个表,你看招引不行,同时你让他这个数据进来呢,就是必须得是解析之后呢,干干净净的,类似这种建设数据不能再进行二次的这个清洗进展啊,所以说简单粗暴啊,所以比较快,那另个项呢,那属于这个预产啊,预计算啊,提前介算好,所以说他在查询的过程当中,其实只是直接把结果拿出来了啊,所以说的快,那像其他这种,虽然说什么基器内存呢,各方面呢也性能也OK,但是毕竟它有一个算的过程。
19:24
啊,那现在说慢一些啊啊,那百亿级数据这都没问题啊,三报支持这块啊,像那个都仪也支持一些时候啊,目前这些是否也支持啊,这些都没问题,那离线这块都支持实时K呢,以前是不支持啊,新版的K我之前看过那帖子,现在呢也是支持啊,Spark这些不行啊,他实施这块呢做的啊,不到位啊,但是Spark呢,它有SPA名啊。啊和你不要想了,那后面呢,像这个精确驱重精确度这块德鲁伊是最差,他一进来就这个数据呢进行,比如说预算这个点击数上来就已经先求和了,直接这个力度就已经没了啊,这是他快的原因就在这啊,他提前先计算啊,那先计算那精度就肯定就第一线好,那后面呢,是这个多表招引这块,那这个德鲁音呢,它只支持单表,根本就不支持招音啊,两边不用想了。
20:27
啊,所以说这种也不行好,那后面呢,像这个外B页面的一个支持,也说可视化这一块,德鲁音呢,自带也没有,当然有这个第三方给他做了啊,那个还OK啊,那其他的这些都有,那ES呢,他有自己的办法是吧?啊额外的框架啊,进行课展示行,那这这块,那后面在框架选型这一块,如果从这个大数据查询,在效率上谁查的最快呢?都。嗯呢,是这个啊之后什么。啊,像那个我知道的哈,美团滴滴内部像大量使用啊,大量使用啊,都有这个分支的使用啊,包括像也是使用的,他们都把这些情况下都装上,都装成什么好处呢?产品经理,无论来什么样的需求。
21:17
我基本上都能用,是短的是长的是快的什么的,秒级的还是这个样,秒级的还是说这个分钟的还是小时的,反正我任务都跑了呢啊,随时拿回来一个武器就就把它对住了啊,所以说这种要注意了,在上这些都撞上啊,但有呢,从这个支持在数据源角度,这个他支持的数据源,比如说支持这个啊啊啊还有什民内行啊类似的这些啊,他都支持,包括他都支持啊,但是呢,像其他的啊中极理,尤其德有一他就支持类似阶层这种啊单边那就很单一,但是啊比较专一,行,那这是这一块我们要要做。
我来说两句