00:00
呃,好了,各位同学,那咱接下来呢,需要做最后一项准备工作,也就是模拟数据准备,这个为什么要去准备一些这个模拟数据啊,呃,其实很简单,是因为将来咱们需要去在have当中去建表,去写circle,对吧?那表建完,Circle写完,那这个东西到底对不对呢?咱们需需要用点数据去给他测一下对吧,需要去测试,所以在这儿呢,我们需要去准备一点数据,好,那关键问题是咱们现在准备数据的时候,咱们准备什么样的数据呢?咱这个数据呢,不能瞎准备,我们在这儿呢,必须得就是呃,模拟这个真实的这个企业当中的场景啊,对吧?然后呢,咱们去准备一些就是比较真实的数据啊,是这样的啊好,那这个咱们怎么去准备的,很简单,那我们来看一下文档里边是怎么说的,他说通常呢,咱们企业在开始搭建数仓的时候,对吧,我们的业务系统当中会存在历史数据,哎,这一点大家能不能理解,应该是能的,对吧,为什么啊,因为就是我们的数仓跟我们企业当中的业务系统往往。
01:00
不是同时去开展,同时去运行的,对吧?啥意思呢?就是比如说我们到公司之后,对吧,那我这个企业当中的业务系统,比如说一个电商系统,我已经跑了好几年了,对不对?但是之前呢,还没有去搭建数据仓库,那我现在是不是才开始着手准备去构建一个数据仓库啊,对吧?那所以说咱们在搭建数仓的时候,那我们企业当中的业务系统里边可能会存在大量的历史数据,诶这一点咱们需要去考虑清楚,OK,那这个历史数据它具体是怎么分布的呢?来我们看后边,但是一般情况下呢,是业务数据库里边会存在历史数据,而用户行为日志呢,没有历史数据啊,那这个呢,咱们又应该怎么去理解呢?我给大家简单的解释一下啊,那首先咱们要知道,就是一个所谓的业务系统,比如说就是一个电商系统啊,他要想能够正常的运行,正常的运转,你说他能离得开数据库吗?他离不开对吧,比如说我这个,呃,电商系统我要想正常的运行,对吧,我得支撑我们的用户去注册,支撑用户下单中,支撑用户去这个。
02:00
和付款等等等,你得支撑用户的各种行为对吧?那这些东西是不是只要一操作就会有一些关键数据写到数据库里边啊,对吧?所以说诶,这个务系统的运行是离不开数据库的啊,所以说只要业务系统运行,那数据库里边就肯定是会有数据的,对吧?那所以说我业务系统比如说运行了十年了,那我的业务系呃,这个买数据库当中呢,就会存在是不是这个十年的一个历史数据啊,对吧?所以说业务数据库里边通常是会存在历史数据的,而用户行为日志呢,一般是没有的,为什么用户行日志就没有历史数据的啊,因为你要知道啊。我们这个业务系统它的运行对不对,是离不开这个买点嘛,也就是我不买点,我这个业务系统就没法运行吗?并不是这样的,对吧,我不去买点,我不去收集这些用户的行为和环境信息,我的业务系统我照常能够诶运行对吧,我照常能够去下单,照常能够去支付,诶是没有任何问题的,那所以说假如我们之前我并没有去做这个数仓的打算,对吧?那所以说我这个买点是很有可能之前是没做的,对吧?我现在要做数仓了,诶我才开始去设计这个买点,我才开始去收集相应的信息,那是这样的啊,那所以一般情况下呢,咱们去搭建数仓,去运行数仓的时候,买搜后数据库当中会存在或者是关型数据库里边会存在一系列的历史数据,而日志是没有历史数据的啊,那这就是我们,呃到这个公司当中对吧,我们要是从零到一去设计一个数据仓库的时候,咱们所面临的一个真实的场景,那所以咱们在这儿呢,去模拟生成,去生成这个模拟数据的时候呢,诶,我们也要去还原一个这样的真实场景啊,是这样也就是一会儿呢。
03:37
我们需要去怎么样呢?去给业务系统的数据库里边生成一系列的历史数据,而我们的日志呢,就不去生成那么多的历史数据了,诶这一点大家要稍微的理解一下啊,OK,好,那么之后看一看我们这块到底怎么生成数据啊,来咱们看一下,就是我们这儿有一个假定啊,假定我们数仓上线的日期是2020年的6月14号,这个你就随便定一个日期,那我这儿就按照这个来了啊,那既然是2020-0614,这是我们上线数据仓库的第一天,对吧?那所以说你说我们这个历史数据我们应该怎么去准备呢?应该怎么准备呢?那首先我们先说我们的业务数据库啊,业务数据库,业务数据库呢,首先你上线日期是0014对吧,那所以说我们数据库里边最新一天的数据是不是就是十四二的数据啊,对吧,那除了有14,我们刚才说了,它还会存在什么来着,是不是一系列的历史数据啊,对吧,里边呢,我们还会有啥,是不是还会有13号的这个业务数据,还有12号的业务数据,甚至有十一十九八七六等等,是不是会有。
04:37
很多历史数据啊,对吧,但是在这儿咱们没必要去生成那么多啊,我们就比如说生成诶这样的五天就意思一下就行了,代表它是有历史数据的就够了,哎,这一点大要搞清楚,那用户行为日志呢,由于我们之前是没有历史数据的,对吧?所以日志我们只需要生成几天的就行了呀,就一天对吧,我们就生成一个6月14号的这个数据就完事了,就代表日志是没历史数据,是我们跑数仓之后才开始有的这个日志,哎,这一点理解就行了,好,那一会儿呢,我们就按照这个要求,按照这个规划去准备咱们的模拟数据啊好,那接下来呢,咱们就要开始,呃,那在开始之前,这有一个注意事项,就是我们需要先将HDFS上面的all date路径下面的数据全部删除,因为之前咱们往上面传了好几次数据,可能都已经乱套了,对吧,它不满足咱们这个真实的情况,所以说我们需要先给它删除来打开这个HDFS的外B页面啊,打开开头1029870之后呢,我们找到us往下走,找到all region data,对吧,这个咱就直接给它删了就完事了,那删的时候小心点,不要把别的。
05:37
啊,这个完了之后我们继续往下走,那这个删除之后呢,我们继续往下进行,我们打开这个文档往下看,那这边还有一个啥呢?是不是有一个,呃,用户行为日志的一个生成步骤,还有一个业务数据的生成步骤啊对吧?咱一个个来先从用户行为日志开始,好,那现在用户行为日志我们要生成的话,刚才说了是不是只生成一天呀,对吧?OK,那这个我们应该怎么去做,首先咱得先干啥,首先是不是得先把这个日志的数据通道得给它启动起来呀,对吧?来回忆一下日志的数据通道应该是什么样的来着。
06:09
呃,应该包含flu,而且是两个吧,对吧,102103是不是各一个呀,对吧?啊,因为我们自己模拟出来的这个日志服务器是102103嘛,所以上边俩辅录之后呢,还得有不卡,那后边呢,还得在104是不是再起一个辅录嘛,对吧?后边那个辅录是干啥?是把卡不卡的数据写在GTS对吧?哎,所以说咱们先把这个通道给它启动起来,来,我们现在统一的启动一下,呃,那现在这个汉特库它在那儿没啥用啊,我暂时呢就先给它关掉,呃,然后大家应该能看到我这个汉特现在这是不报了一个错误啊,对吧,那这个错误呢?呃,后续我再给大家解释,咱们现在先不管它啊,一会儿咱们再说,那这个其实没啥问题啊,这个是一个,呃,正常的现象啊,一会儿咱们再说啊,那这个先给它,诶关掉,关掉之后呢,先看一下我当前的进程都有啥,我现在是不是只有嗨度的进程啊,对吧,那我首先需要先把这个采集通道提起来,首先先起卡,不卡起卡完之前掀起CK,咱们直接使用这个脚本就行了啊左K班先给它起起来,呃,起来之后呢,咱们查看一下状态,Sattss follow leader follow没有。
07:10
题对吧?好,现来继续,下边我们启上,下边是不是得启航卡呀,对吧?诶KF然后呢,Start了,嗯,好,那现在呢,我们在X靠GPS一下卡不卡,现在也都已经启动成功了,没有问题对吧?行了,那这个都起来之后,咱接下来需要干啥呀?是不是启动嘛,对吧,先起102103的两个,那用谁启,是不是用F1那个脚本去启就完事了对吧?来这了,好,启动成功,那接下来第二一个是不是f2.sh启就完事了对吧?好,完事之后我们现在是不是所有的进程就都已经启动起来了,好,都启动起来之后,咱接下来是不是可以开始准备去生成数据了呀,对吧?好,那生成数据我们这儿有规定,是不是只生成14号这一天的就完事了,对吧?所以说我们得先去调整一下是不是那个模拟器的配置文件啊,对吧?来进到OPT,进到Mo,进到APP log进来之后,这里边有很多的配置文件,咱们只需要改谁就行了,application.email文件对吧?改开它打开之后呢,咱们,诶其实我这儿是不是有一个Mo的参数啊,对吧,我这本身是不是就是有丝啊,对吧,那这个就不用改了,那这。
08:10
他不改的话,那理论上103应该也不用改,咱们去找一下啊呃,要是改是不是俩地方都得改对吧?进到blogg啊,拿过来之后呢,我们看一下AP application.ma那也是幺四这个数据不用改了,对吧?不用改之后shift z好了,那像现在我们这两个模拟器的配置文件就准备好了,那接下来咱们干啥?就是直接执行一个Lg.SH是不是生成日志就完事了,对吧?直接Lg.SH然后回车好,那现在我们要做的工作就是啥呢?就是等对吧,咱们得让这个数据是不是传一会了对吧?那那稍微等一会儿,那现在我们来到HDFS这页面,然后呢,咱们监控一下我这刷新,如果通道没问题,这是不是就会出现一个data路径啊对吧?出来之后我们点进去,点进去找到log,找到topic log,然后大家看这是不是会有一个14号的路径,对吧?那这就是咱们14号的日志,那这时候我们需要稍微的等一会儿,咱们得等这个,呃,GC后边的这个tmp后缀去掉之后才行,这个有tmp代表什么呀?是不是代表咱们当前这个文件还没有关闭啊,对吧,也就说明我这个数据还没有写完,等到。
09:10
关闭之后,那我们再往里边,我我我们再去,呃,再去干其他的工作啊,稍微等一会儿刷新,呃,OK,那问一下大家,那这个文件它的关闭策略大家还记得不。什么时候这个文件会关闭啊,现在已经关闭了,对吧?大家还记得不?我们应该是在H,在那个flu的HD FS think当中配置过几个参数嘛,对吧?那几个参数还记得是啥吗?是不是跟肉相关的肉滚动对吧?什么叫滚动啊?所谓滚动就是关闭一个文件,生成一个新文件,这是不是称之为一次滚动啊,对吧?OK啊,那与滚动相关的参数咱们有三个,分别是roll count roll interval row size,对吧?这三个参数分别是啥来着?Roll count是干什么用的啊?是根据是不是往这个文件里边写入的已问的个数去决定文件何时关闭对吧?那玩roll size呢?是根据往文件里边写入的这个是不是数据量的大小来去决定什么时候关闭这个文件对吧?还有一个是roll in知道没对,是这个文件打开的时间去判断对吧?哎,是这样的啊,那通常我们那个肉抗的时候不用啊,对吧,我们会给它置为零啊对不对,那也就是一般是根据大小加上时间去进行这个判断的,这一点稍微的回忆一下就行了。
10:22
那这块呢,咱们就不再多说了啊,这个文件已经关闭了,就说明已经生成完了,好,那接下来我们继续往下走,也是到现在呢,日志咱们就已经准备好了,接下来就是业务数据了,来视频我先停一下啊。
我来说两句