00:00
首先DW层呢,是卡夫卡这个呢没毛病,其实对吧,它没有什么过多的一个要求,接下来就到这个。DWS跟这个。ADS这两层对吧,我们先聊DWS好,呃,刚才我们说了我们的数据。它呢是分组,按照维度对吧,度量这个我们之前说的叫指标体系去建设的,里边呢有这个力度,力度里边呢包含可能有很多个维度,就还是拿我们那个举个例子叫用户啊,这边呢,我们举个例子就是用户,比如说我们有这么一个需求啊,比如说我们有这张表啊,但具体有没有呢,后面我们再看啊,然后呢省份,然后呢商品,对吧,我们要根据这个是我们的力度去计算一个东西叫GV。加没啊好。那我们从DWD抽取数据加工写到卡夫卡,当然这个没有问题,最后呢,你再去求这个啊,这个东西呢,我们放到DWS。
01:04
这玩意儿呢,我们假如说放到这个DWS对吧,好,那最后呢,ADS我们要取这个指标,比如说我有什么呢,我有这个用户。对吧,我有这些个指标,我有单独的拥护GMV。我单独的用户GMV完了啊,那就这样吧,这样啊,我要求单独的用户GV,然后呢,我要求这个省份g ma,然后呢,我单独的求商品GV,然后呢,我同时又要求什么呢?我要求这个。对吧,我要根据省份商品,然后这两个维度对吧?呃,组合我要展示这个来看各个省份各个商品它的一个出售情况,对吧,那我们要根据不同的。力度去计算这个指标,好,那如果说我们这玩意儿啊,这个东西放到的是卡夫卡,那这个东西我先问大家这些东西能不能求。
02:11
可不可以求?我用Li去消费这个主题,然后呢,把这个维度挑出来,对吧,再做一次之前求GMV的聚合,这个可不可以。能不能行,大家告诉我。可不可以?这个很明显是可以的,对吧,很明显可以的,因为你一条一条数据过来,我再做一次聚合嘛,对吧,你原本的数据有三个维度,我最后呢,只要一个或者两个对吧?当然可以啊,重新分组就好了,这是可以做到的,好那如果我们要这样做的话,你看啊,我弗林实施任务。有几个,是不是有四个?
03:01
是不是我会有四个弗林实施任务?对吧,我要分四个不同的组去做这个事儿,而且你未来增加一个指标,我要起一个实时的任务,大家想是不是?这个有没有问题,因为我这个东西呢,在卡夫卡里边,目前呢,我们说DWS放在卡夫卡对吧,那我就要启用一个弗林实施任务去做计算,这个有没有问题,没问题扣一啊。好,那这样会带来一个什么样的一个不好的点,就在于我们如果这样的话,你看一个DWS,未来可出的指标可不止一个。对吧,也就是说你每一张DWS层的表呢,你未来要跟着很多的实时计算的需求。我要做不同的维度组合。
04:02
对吧,那这样的话,你实时任务呢,弗这个实时的架包打包对吧,运行的这个实时任务就太多了。大家想是不是就太多了,对吧?好,那我们能不能把这个东西做一个改进呢。就是我能不能有一个更好的办法来解决这个问题,我不希望有这么多的一个实时计算的任务,对吧?因为你未来一个ADS对应一个指标,对对应一个指标没问题,对吧?对应个指标之后呢,你要对应一个实时计算任务,这个好像不好,我们能不能把这块东西做一个优化,有没有更好的方案,大家可以思考一下,对吧,从DWS的存储考虑啊。能不能把这个东西做一个优化呢?
05:04
想一想,思考一下。我不希望有这么多的一个flink实时计算任务,对吧,也就是说放到卡普卡,你势必要用这个flink这种计算嘛,你得消费这个消息队列里边的数据,对吧。我要。转变这个思路,我不想就放到卡不卡,你放到卡布卡只能用弗Li,那你要用弗Li的话,你每多一个指标,你要多一个实时的任务。那实施任务比较耗资源啊,对吧,我们都知道不太合适,那有没有另外更好的方案呢来代替呢?哎,方总说的克里house也就是这一块呢,咱们可以不用卡夫卡,我把它如果说写到,就像方总所说的写到哪呢,克雷house里边。DWS,我写到呢。
06:03
对吧,那如果这个house里边你是这样的指标,我要根据这个DWS求这些个指标是不是就多一个so就完了。是不是就是一个S的问题啊。对吧,而且克雷浩为什么会想到克雷浩呢,对吧,因为你看啊,这边从DWS到最后的ADS是不是还是在做什么。做聚合。根据不同的。力度做聚合对吧,把一天的数据聚合起来,因为在我们DWS形成DWS的时候还没到ADS,我们说了这个呢,我们不能按天聚合。我们不能按天聚合,按天聚合你还不如离线了,对吧,我们实时肯定是几秒钟,或者说甚至不做聚合就把明细放进来。对吧,好,那我们DWS到AS1定会做聚合。就是这个使用场景当中告诉你的要做哪家要做聚合操作。
07:02
对吧?好,那为什么用c house呢?就在于要做聚合列存,对了啊对了,方总说的没毛病啊,整个的都没有问题,对吧?我们用科house,因为它是列存,所以最后呢,我们再做这种再次加工数据的时候会更有优势一些。对吧?好,这是克雷号,好,既然我们DWS选用了克雷house,那ADS要不要改呢?ADS要不要改呢?大家告诉我,我们DWS已经改成了C号基础上ADS要不要修改呢?
08:05
首先。你的数据DWS已经在克house,你要什么数据对吧,直接去查就好了,用一个circle去查一下就好了。而且克莱奥也可以永久存储,对吧?啊,只要你不删。好。第二个问题在于,我们想。实时的展示这个指标。那就类似于。阿里的双11那个大屏对吧。阿里双11的那个大屏也是什么呢?它一直在滚动显示,就是它每天显示的是什么呢?显示的是从。今天的凌晨。一直到当前这个时间点的数据。聚合结果对不对,所以说他每时每刻都在变化,对吧,就是我们说话这么长时间,可能又有人下订单了,那我们g ma呢,要发生改变。
09:06
好,那你告诉我,你把每一次改变的一个值,你都要去展示,对吧,啊,你因为你变化的,其实你展示的。那这个数据我要问大家这个你计算的结果。需要把它存下来吗?就是你假如说每秒钟你去查一次。每秒钟这个结果是不是都有会发生变化呀?我需要把这个结果,把这个每秒钟变化的结果存下来吗?大家思考一下需不需要。就是我现在的问题是需不需要把这个数据结果存下来呀。需不需要存下来?
10:05
很明显不用吧,对吧,我每秒钟产生一个结果,我需要存下来吗?不需要,所以呢,咱们其实ADS层就根本就怎么样,不落盘不存。对吧,那不存。怎么办呢?其实我们的ADS就是什么呢?就是从克里浩把数据读出来的那个circle,也就是说。ADS实质上是一个什么,实质上。不罗盘对吧,实质上。是。接口模块,未来我们要写一个接口查数据对吧,接口模块,因为我们要做展示嘛,所以我们要写一个接口啊接口模块中。查询。可号啊,也就是DWS,查询可号的S语句。
11:00
这个东西作为我们的ADS,因为我们不落盘,但是我们为了展示,我们肯定有这个circle,对吧,而这个circle语句所形成的这个接口模块就是我们的ADS层。啊,最后为了展示对吧,为了最终的展示咱们呢,需要一个circle查click house。听懂。能明白吗?能明白这块在讲的什么事吗?明白的给我扣一啊。就是咱们读取克里house产生最终。指标的这个circle。对吧,它形成了一个接口模块。就是咱们那个什么呢,ADS。啊,就是咱们的ADS,因为之前我们讨论的ADS呢,并不需要落盘。啊,并不需要罗盘,或者说你说最后的展示整体对吧,就是写到克里奥以后,从克里奥把数据读出来,做最终的展示,那这个整体。
12:12
是一个ADS,也可以这样说。对吧,我可以认为这个整体是一个ADS也行,因为它呢最终把我们指标展示出来了吗。对吧,是这样的一个效果。OK吧,好,这是我们所说的这个。三层。啊,要写接口,对啊,未来呢,我们要写接口。相当于把计算结果直接发给大屏,对,直接发给大屏,但是咱们要做的大屏展示,你就不能用那个super set了,对吧?啊咱们呢,最后用一个收费的工具,当然他有试用期,大家呢,注册一下,用他的免费的试用就够了,他会让大家免费试用30天啊你就足以了,对吧?最终呢,我们要在这上面诶展示各种各样的指标,对吧?但是有一个问题,你要把结果能展示到这儿,那我们数据在格林号,我们要从格林奥把数据查出来传给他,那怎么做呢?这中间就有一个数据接口。
13:12
好,那我们可以认为这个东西是咱们的ADS。能明白吗?啊,这是科里house对吧,这是做大屏展示啊,那这个接口你大屏展示调用这个接口,然后接口呢,去科林house取数据,把数据拿到,拿到以后呢做展示,所以这样的话也没有落盘,因为实时的这个数据最终结果我们根本不需要落盘。这块能明白一些了吗?能明白吗?OK吗?OK的,给我扣个一好吧。有不太理解的也可以敲出来。
14:00
啊,当然其中有大部分同学。是不愿意动手的啊,或者说嫌麻烦对吧,先退出这个全屏比较麻烦啊。那我就没办法了啊,那嗯,反正目前扣的都是一对吧,而且这次人也比较多,OK吧,好,这是我们所看到的这个点。OK吧啊,就是最终的ADS,咱们呢就做了这个调整,所以最后的分层呢,我们就利用这些个框架吧,去做我们整个实时数仓的一个构建,OK吧啊,所以第一步呢,我们先把这个事情搞定啊,未来选用框架的时候呢,我们就直接去用了啊好。
我来说两句