00:00
那我们简单的把昨天所讲的内容呢,做一个快速的回顾啊呃,那昨天呢,我们是首先带着大家回顾了一下整个离线数仓里边的架构。对吧,然后呢,回顾了离线数仓它的一个建模的方式,以及DWS建表的理论,叫指标体系建设,对吧,当然了,同时我们也通过离线输仓。里边的一些细节引出了我们实时输仓该如何处理,对吧,我们刚开始是完全模仿的这个离线收仓来,但是离线跟实时毕竟还是有区别的,不能完全的去模仿。所以呢,我们在此基础上做了修改,比如说存储。计算。这个都做了修改。对吧,那离线收仓呢,用的都是have have呢,存储依赖于HDFS啊,计算默认依赖于MR,那可以改成Spark引擎或者说T引擎。
01:07
对吧,那我们在验收单里边应该用的是SPARK1斤。好,呃,那我们肯定就不能用这个了,因为它太慢了啊,我们要计算引擎呢,换成了flink。存储呢,也不能用HDFS了,太慢跟磁盘,直接跟磁盘打交道,对吧,你要往磁盘写,还要去实时的能够读出来,很显然HDF不符合我们实时的应用场景啊,那他要实时写可以实时读。那很明显这是一个消息队列所干的事情啊,那我们就想着我们所学习过消息队列只有一个叫卡夫卡,我们就把这个实时收仓,基本的存储依赖于这个卡夫卡啊,所以当时呢,我们想的是oddm,呃,DWDDWSDS全都放到这个。卡夫卡对吧?啊,我们想的用一个框架码,跟have一样,跟我们离验收仓一样,统一的都用have,那实时数仓,我们既然选定了卡夫卡,那是不是我们刚开始想的是都放到卡夫卡,然后再一层一层的去分析这个东西放到卡夫卡它到底合不合适。
02:12
对吧,或者说他有没有更优的方案选择啊,那我们其中有三个地方就换了DM层,他放卡夫卡就不合适。因为DM层呢,我们的使用场景是事实数据来了,我会根据主见去。做招或者说做这个。维表关联就是我根据ID去查一下你的维表。对吧,那我们作为尾表数据而言,假如说我是好多年前创建的一个用户,我今天照样可以下订单。对吧,那我下完订单之后,你应该也要去关联我的用户信息,我是好多年前的,那就涉及到一个永久存储问题。对吧,你卡不卡。不行。啊,那第二个我们要根据主见查询卡夫卡呢,它适合就是说诶,我从我上一次消费的位置,把接下来数据所有的数据全部拿过来,对吧,我要做的是这样的一个事情。
03:13
那你卡夫卡里边根据主件去查询,这个呢,办不到啊,所以呢,D层就不适合放在卡夫卡啊,最后呢,我们要讨论的是base clear ES,什么have my so本身对吧,从这几个角度去讨论了,其实最终呢,我们发现是最好的。对吧,啊,从各个方面来说,它是最优的一种选择方案啊,好,当然它的查询速度不一定是最快的啊,你比如说它比red肯定就慢。啊,但是呢,你有用户表啊,数据量大,你要多放个red,那不太合适对吧?好,这是我们说的这个,呃,S space啊,那么接下来这个DWD层。
04:03
是放在卡夫卡这个没有问题,因为它就是一个数据明细,对吧,你把明细写到卡夫卡,然后呢,你去消费这个明细数据啊,一般在DWD层呢,都是一些事实表和我们的日志数据,对吧,那这个呢,放到DW层,他就来一条做一条计算。就行了啊,所以呢,它完全是适合放在这个卡夫卡的啊DWS呢,放在卡夫卡行不行呢,可以。但是呢,它不好。这个跟DM层不一样,DM层呢是不行对吧,这个呢是不好,它有更好的优化方式,因为我们发现把DWS放到。卡夫卡。那DWS呢,它是根据指标体系建设构建的一些主题,或者说我们称为表,对吧,那它里边呢,是有。原子指标。对吧,然后呢,得到这个。
05:01
派生指标。啊,派人指标呢,在原子指标基础上。加了时间。啊,真重要的,加了什么呢力。啊,注意力度呢,这个东西是维度的组合啊,可能我有好多个不同的维度组合拼接起来的一个力度。对吧,那最终我出ADS指标的时候,可能我只用到这个力度当中一个或某几个维度,不是全部都有。有可能会出现这种情况。对吧,好,那基于这种情况我们一想。你把这个DWS写到卡夫卡,如果说针对于这一张表,我未来要出很多不同的指标。那么对应的什么就很多呀。就是我们所说的flink,流式计算的任务就会非常多吧?是不是对吧,而且这个任务呢,其实就是做一个累加,按天做一个累加,把它累加到一块儿,最后呢,得到一个数据。
06:05
啊,你同时还得把这个数据写出去,你才能做展示。对吧,你还得把这个结果再写到ADS,就是我们说的买circle,好,当然了,你可以设置一个主键,按时间设置一个主键。对吧,然后呢,不断的去更新这个数据,其实数据量呢,倒不是很大。啊,数据量呢,倒不是很大对吧?啊,但是呢,你要实时的往这个买三个去写啊,那另外呢,还得去读,所以这种。把DWS放到卡夫卡,这个方案很明显它有它的一个优化方式。我们可以直接把这个DWS写到一个数据库里面。然后你通过这个数据库,你要什么信息,对吧,你直接写S去查询就好了,而由于我们是一个什么。就是对于DWS这个表呢,最终做的是一个聚合查询,所以我们希望把它写到一个列存的数据库里边,而且查询效率要高。
07:04
对吧,嗯,那很明显克house就是我们最优选择方案了,就是当然这个是建立在我们所学习的框架当中啊,当然,呃,市面上还有很多我们没有学习的框架也可以做到的事情,比如忽地啊这些东西,对吧,也可以做到类似这样的事情,但是我们并没有学这个框架啊,就我们学习的框架就这样,那这个是很重要的一个点,就是你掌握的东西啊,比如说。大家未来面试还是说你们未来工作对吧,你们可以互相去交流,你会发现各个公司当中用到的架构可能不太不太相同啊,或者说用到的框架不太相同。啊,我就这么跟你说吧,比如说啊这个东西。跟E这两个东西对吧,我决定在这两个里边挑一个,从我们的为表。
08:00
啊,那我告诉你,如果说你未来的。项目经理或者说你的组长,他来定这个架构的话,对吧,他如果说对ES这个东西非常熟悉,玩的特别的溜,因为Java转过来了,他可能之前做搜索的。对吧,他玩的特别的溜。但是对h base呢,他是有所了解,因为他接触大数据以后,听过这个H这个东西好,那你觉得他在定这个DM层的时候,假如说他一个人说了算,不需要去讨论,那你觉得他是定还是DES,你觉得。对吧,这个很明显吧,答案。那肯定是ES。对吧,啊,肯定是ES,对于大家来说也一样。对吧,那比如说采集的方式有很多种。啊,那假如说他们可能都行,但是呢,他们之间有一点小差别,就是说A。
09:00
可能比B好一点,但是比C也好一点,对吧,就是好的不多,不是特别的多,对吧,就是好一些,它是最优选择啊,但是呢,你选择这个框架的时候,你可能对B是最熟悉的。其次是CA呢,你了解过啊,您可能知道这个东西呢,也比它好一点,但是呢,对于你的公司当中也没有。质的提升。啊,没有质的提升对吧,那么你肯定会选择B的一个框架,对吧,这是我们所说的克里奥呢,是我们目前所学习到的框架里边,它的一个最优选择,对吧?但是你要放在市面上,他就不一定了。啊,这个就不好说了,对吧?啊,是这样的一种方式啊,这个要清楚对吧?好,所以说你未来在面试的时候,有可能人家会质疑,诶你这块为什么用这个克house或者什么样子的,那你可以甩锅,诶组长去定的,或者说我们之前开会讨论去定的,或者说你说你自己当时也了解过其他的一些框架,但是呢,你对于这个克雷house最为熟悉。
10:05
对吧?啊,为了这个不耽误这个工期,就没有选择其他的框架,因为克雷奥斯能够完成我们最基本的功能,而且可以很优秀的完成我们的基本功能了,对吧?那再去调优换框架,这个呢,没有太多的时间给到你去做这个事儿,对吧?你可能调研了一下啊,能听懂在说什么吧,这个是教到大家,如果未来面试的时候,人家问到你框架的一个问题,对吧?那这个都是会受影响的啊好,这是我们所说的。DWS选择了克house,那既然DWS选择克house ADS就不用聊了,他就可以不落盘了,对吧,直接从克号写S去查询啊,用接口的方式,然后把它查查出来,返回给页面一个接份格式的数据。对吧,啊,那么最终呢,去做一个数据展示,让我们可视化的一个工具,调用我们所写的接口就行了啊,这样的一种方式啊,OK,这是我们所聊的这样一个分层,那后面呢,就是说我们把之前。
11:10
大家所学习的建模理论。对吧,数仓整个的构建流程步骤,它里边所涉及到的什么指标体系建设的理论,给大家稍微的回顾了一下,那最后呢,是测了一下。日志数据采集以及。业务数据的采集对吧?啊,因为这两个采集呢,在书单里边就单独的是一个采集模块,对吧,在我们实时收藏里边,它是相当于我们的ods层,因为这两部分已经把数据写到topic DB与topic log2个主题里边,那已经在卡夫卡了,那我们就直接做成我们的。Ods厂。对吧,做成我们的ods OK,这是我们昨天所讲的内容。
我来说两句