00:00
上节课啊,我们说到数据仓库,它是用来存储我们公司所有数据的,那既然是所有数据,它的种类肯定就会非常的繁多,那种类多,我们在采集数据以及计算和分析的时候用的方式,那肯定是要各不相同的,那首先我们就要知道在一个电商平台当中,数据我们一般都分为哪几类,那接下来我们画一个图,那关于数据分类啊,我在这儿给数据一共分为了三类,第一类叫做用户行为,第一类叫做业务数据。我给他个颜色好,那第二类呢,叫做用户行为数据,第三类爬虫数据。好,爬虫数据好,那接下来我们一类一类的给大家解释,首先我们来看什么叫做业务数据,那说到业务数据呢,我就想起来海哥昨天晚上托我给他办件事儿,海哥让我帮他买点东西,但是啊,我看了这个东西之后,我呢就没有好意思直接去店里买,我呀默默打开了我的京东网站,然后搜索海狗人参丸,好,我一回车就会进入到一个商品列表的页面,然后呢,我找到海哥让我帮他买的这款商品,海哥说一盒不够买两盒,然后我点击添加购物车,那在添加购物车的时候,他让我扫码登录,我打开我手机的京东APP扫码登录,然后确认电脑端登录好了,他已经扫码成功了。
01:34
登录进来之后,我们就能看到这个商品已经添加到购物车了,我点击去购物车结算,然后呢,我就可以填写海哥的收货地址,以及海哥的手机号,其他的个人信息等等等等,那刚刚在我的这一系列操作的过程当中所产生的数据,它就叫做业务数据,你比方说我搜索了一个商品的列表,那这些商品就是我们业务,呃,就是我们的业务数据,再有我添加了一个购物车,我呢又生成了一笔订单,以及我支付的数据,这些呀,都是我们的业务数据,那大家想一想,这些业务数据他们都有一个什么样的共同特征呢?
02:20
他们是不是响应的都比较迅速啊,当我点击一个按钮的时候,对应的业务数据它就会给我们返回过来了,那大家想一想,业务数据它既然响应的这么快,他用什么样的数据库存储比较合适呢?在我们之前学过的这些技术当中,哪些数据库它们的读写要比较快?诶我们是不是学过关系型数据库呀?那在关系型数据库当中,我们学过my circle,那用my circleq来存储业务数据库它就比较合适了,那这个就是我们的业务数据库,以及业务数据库的存储,那说到这儿啊,我们还要提到一个概念,叫做客户端,那客户端是啥呢?其实我们每天都在用啊,你比方说啊客户端,你比方说我们的小程序。
03:13
或者我们的网页再有APP,再有手机端。手机端的H5页面啊,这些它都是我们的客户端。那我们的用户呢,就通过客户端,然后跟我们的业务数据库啊进行访问,那在前面啊,我们这儿还应该有一个用户user。这个叫做user,他是我们的用户,然后呢,用户他就可以操作我们的客户端了。那客户端呢,他就可以来到我们的业务数据库当中来读写数据,那这个箭头它应该是一个双向的,大家想一想为什么是一个双向的。
04:03
原因是不是我们的客户端可以在业务数据库当中来查询数据吧,就像我们刚刚查询了一个列表页面,再有我们是不是也生成了一些订单的数据,或者是购物车数据啊,同样我们买了一个商品,对应的库存他也应该减少吧,那么我们既有从业务数据库当中查询数据,也呢,可以往业务数据库当中写一些数据啊好了,那接下来我们看一看什么是用户行为数据呢?OK,那再次啊,来到我们的这个商品详情页面。那大家分析一个问题啊,你说海哥在让我帮他买这款商品之前,他肯定要来到这个商品详情页面来看一看这款商品,诶,它有什么样的功效啊,是否符合海哥自身的需求,然后海哥还会来到商品评价列表看一看,大家是否用了,都说好,诶海哥感觉还不错,然后呢,他点击了一个关注,对商品进行了一个关注,好,那我们接下来点击一下F12,在F12呢,我们来到这样的一个页面,我们点啥呢?我们点击network,诶这里现在什么都没有,那我们点击一下刷新,刷新完之后啊,我们能看到有这么多HTTP请求,我们在这这有一个filter,我们可以进行一个过滤,我过滤一个log,过滤完之后我们随便点击一个,点击之后我们就能看到一个request URL也就是一个HTTP请求,但是这个HTTP请求我们根本就看不懂我呀,点击一下右键copy,我给它复制。
05:44
复制完了,我来到百度。我在百度搜索URL解码好,然后回车,我点击进来。点击进来之后,我点击URL编解码,然后我把刚刚复制的内容给它粘贴进来,粘贴进来之后我在这点击URLD扣的解码,那解码之后我们就能看到,诶,有这么一行内容,我们现在是不是能看得懂了呀?你看他把我们商品的名字给返回过来了,而且我们再仔细分析一下啊,在当前的这一个HTTP请求当中,他把我们商品的名字应该是当做了一个请求的参数,又发送回我们的服务器后台了,那大家分析一个问题啊,你说我们的浏览器为什么还要把商品再发回到我们服务器的后台,难道是他又发回到我们的业务数据库当中了吗?应该不会吧,我们当前这款商品是从业务数据库当中查询出来的,查询出来,我们还有必要再往业务数据库当中写吗?
06:53
诶,其实是没有必要的啊,那有同学说难道我是拿了这个商品的名字,我去业务数据库当中查询的,诶其实也不是,那如果说学过my circleq的同学都知道,我们呢,从my circleql当中查询数据的时候,我们一般不会通过名字来查询,我们是通过商品的ID来查询,为什么要这么做呢?因为商品的名字我们是有可能要变化的嘛,但是商品的ID我们一旦给它分配了,ID是不变的,所以说用商品的名字来查询是不可能的,那这个商品我们最终又给它发送到哪的呢?其实我们没有给他发送到业务数据库了,我们呢是给他发送到用户的行为数据了,但客户端呢,并不是直接把数据发送到用户行为的数据库的,而是在这有这么一个概念,叫做买点。
07:55
买点呢,它就可以捕捉到用户在浏览器的一系列行为,然后买点就会把我们的数据给发送到用户行为数据库当中,那也就是说我们刚刚在浏览器上看到的这一个个的log.gif请求,就是京东商城的买点。
08:17
好,那么买点数据,它发送到我们的用户行为数据库,那大家再分析一下用户行为数据库用什么存储比较好?那首先我们想啊,我们用户在我们的商城下一笔订单,他肯定会在我们的商城里做了很多次点击吧,那既然有很多次点击,肯定就会有很多的用户行为,这个数据量相对来说还是比较大的,那用户行为数据我们用关系型数据库存储它也就不划算了,同时我们还要分析,我们还需要从用户行为的数据库当中去查数据吗?诶,我们的客户端还要查询用户的行为吗?诶,不用了啊,用户的行为啊是我们接下来做计算的时候用的,也就是说用户行为数据我们只需要往里写,不需要查询,那么我们就可以啊,通过日志文件的形式给他记录下来。那用户。
09:17
行为数据库,我们就用日志文件来进行存储,这个叫做日志文件。我给它缩小一点好。那业务数据和用户行为数据,我们说完了,接下来还有一类数据叫做爬虫数据,爬虫数据顾名思义,它就是爬取的别人家的数据,好,我在这呢,给他一个连线,哎,爬取的是别人家的数据,那这个爬虫数据它有什么用,我们先看一看啊,你比方说我们呢,在这个商品列表页面,通过爬虫我就可以爬取到每一款商品,每一个品牌的商品,它的价格,那我拿到这个商品价格之后,在我们自己的平台上,我就比你少卖一块钱。
10:14
那肯定就会有这么一类人,他们在购买商品的时候会对比多个平台,然后找到最便宜的那一个平台。哎,谁便宜我就在谁家购买,那这样我们是不是就相对来说更有一个价格的优势啊,那大家分析一下啊,这个爬虫它是好事还是坏事呢?按照我刚刚所说的这么一个场景,它应该还算是好事吧,但是大家不要忘了,既然是爬虫数据,就是爬取别人家的数据,那爬取别人家的数据有没有可能把别人家机密数据就给扒来了,爬取到别人家机密数据,那就触发了法律,既然触发了法律,很有可能我们钱没挣多少,然后下半生的幸福哎就给搭进去了,那基于这个问题啊,爬虫数据我们呀,是不建议大家去做的啊,如果说呃,在公司当中有老有老板问你,诶爬虫数据我们为什么不做呀?
11:13
那如果在工诶爬虫数据我们是不建议大家去做的,好那在我们的商城当中啊,数据就分为这么三类,业务数据,用户行为数据以及爬虫数据,那在我们的商城当中啊,我们采集的就是两类数据,业务数据以及用户行为数据,我们把这两类数据给它采集到我们的数据仓库当中,好,这个就是我们的数据仓库,好那到这儿我们的数据分类也就说完了。
我来说两句