00:00
好,那咱们上午呢,是结合着离线数仓的分层来聊了一下实时数仓的分层,首先我们分的层是一样的,然后呢,它的指导思想。也是一样的啊,但是呢,肯定有区别,毕竟一个是离线,一个是实时,对吧,那离线的话,我们只要保证一天去计算头一天的数据就行了,第二天计算头一天的对吧?实时呢,那数据来了就得计算,所以计算框架得换,那计算框架换的话的话,我们中间。他这种存储数据的地方。那也得换。对吧,所以我们当时说的像flink,然后呢用的夫卡,但是我们仔细讨论更多的可以用到我们的卡夫卡没有问题,但是像维表数据层。DM层对吧,DWS,那这个呢,使用卡夫卡好像就不太合适对吧?当然也行啊。
01:05
啊就是呃,微表层呢,就不要用卡夫卡,当然你要真要用卡夫卡行不行呢。其实你这样用也行,但是其实那个地方啊,跟卡不卡没什么关系啊,怎么做呢?比如说咱咱这个东西写到的是卡夫卡。啊,那应该说,那它不包括永久存储跟主件查询啊,对吧,确实那这个时候跟卡夫卡没关系,它只是一个传输工具而已。啊,我们可以把这个数据消费到。消费到以后呢,把这个数据写到状态里边。以公事时表来做查询。啊,我们十秒来做查询是这样的一个方式,但其实这个时候跟卡夫卡就没什么关系了,对吧,所以这种方案呢,我们就不聊啊,就是说你把它写到状态里边,把所有的这个维表数据都写到状态里边,然后呢,你要什么东西自己去查,去状态里边找啊这也行,这个很麻烦。第二个呢,因为我们还有用户表,用户表呢,它的数据量会比较大。
02:07
你要写在状态里边,你这个状态呢,也会非常大。对吧,啊,所以这种方案呢,就。不了啊,那DWS同理,DWS呢,刚开始的时候咱们也是说的写的卡夫卡啊,可不可以呢,可以,但是呢,他也不好,问题在于哪呢。因为在于我们一张DWS的表,未来是要出很多不同的指标。如果说咱们将这个DWS。这个数据对吧,写到了卡卡里边。那我们就针对每一个。最终的ADS的指标,那么将会形成一个专门的flink实时的任务。对吧,那这个其实没必要,因为到了最后ADS说实话就是一些已经在已经按照几秒钟几秒钟聚合的基础上。
03:08
挑选几个你想要的维度信息,组成一个力度,对吧,之后呢,把整体把它聚合起来。就是一个简单的聚合操作,对吧,我们非得再开一个弗林实任务,其实大可不必啊,所以基于这种场景呢,我们想到,诶,那这个数据呢,我也把它DWS直接落盘永久存储下来。那我们要什么的时候呢,我们去查就好了。啊,那针对于DWS,它的使用就是读取出来要做聚合操作,所以呢,我们选择一个列存储的框架,那是最好的,对吧,所以最后呢,我们选择了这个叫click house来做存储的,啊好,那这是我们把每一层的内容聊清楚,当然。这个只是我们聊的分层啊,就跟离线数仓有很多的不同点了,真正实施起来跟离线输仓里边还有。
04:01
很多不同点对吧?啊,这个是一定的,还会有很多啊好。那么接下来呢,我们就看一下这个实时数仓。具体的这个流程是什么样子的,对吧,因为上午呢,我们结合那张PPT了解到,诶离线输仓它是什么样子啊,接下来呢,我们继续把那个PPT播完啊,把实时收仓,结合我们上午所说的,诶串起来,把这一道串起来就行了,对吧?好,那我们还是一样的。首先呢,我们就快速的这是数据的采集对吧,一直到HDFS,当然这个是属于我们的离线啊,那最后呢,把这数据写到have里面做分层。DM。DWDDWS以及ADS啊,包括这个理论方面,像DM与DWD维度建模,对吧,DWS指标体系建设啊,呃,ABS是最终的一个数据指标,这个没什么好说的啊,最终呢,我们找到MYS里边用super set做可视化啊,这是离线,上午呢我们看到这啊,呃,那么。
05:14
我们接下来理实时应该怎么做呢?实时注意应该从这开始了。从那个卡不卡这个位置。对吧,好好,那么。嗯,小芳是现在下去做核酸吗?还是说刚才下去做核酸。所以没签上到,因为刚才好像签到的时候你不在。啊。如果是现在下去做核酸,那估计我现在说话他也就听不到了,对吧?好,那我们先不管了,做核酸这个也没办法,那将来呢,到我们这个啊,刚回来是吧?行,那我们后面如果说快要上课了,去做核酸了,提前说一声啊,要不然在这喊半天。
06:02
也不知道你干嘛去了,以为你没到OK吧,就提前说一声,提前说一声啊。好,那到实时数仓呢,我们就从这个卡夫卡这个位置开始。啊,从这个位置开始,那我们之前采集过来是不是有两个主题啊,一个呢是日志数据啊,叫topic log,呃,还有业务数据叫topic DB。啊叫topic DB就两个主题对吧,因为我们改了,注意啊,这个业务数据此时不再是13个主题了,对吧,它所有的表放到一个主题里边了啊,只放到一个主题,所以现在呢,咱们这个这边。就有两个主题的数据,那么我可以告诉你,在实数仓里边,这两个主题其实就是我们的ods层。因为本身我们的ods就是放到卡夫卡,那我们采集到的数据过来之后,是不是就是在卡夫卡,所以这个时候呢,它就是我们的ods层不需要再去导一下了。
07:12
能理解这个事儿吧,对吧,好,所以呢,我们直接用。去消费这个ods对吧,然后把一部分数据呢,写回到这个DWD层,当然还有一部分数据要干什么事的。第。啊,DM层当然这边DWS层是继续消费它啊,继续消费它中间这几层都是通过什么,我们flink把它串起来的。都是通过弗Li把它串起来的,对吧?呃,我们先消费ods,把它写到DD以及。H base做我们的DWD层以及DM层,那ods dwd都是在卡夫卡对吧,而我们的维表层在h base啊,那接下来呢,可以消费这个DWD数据,同时与我们的。
08:09
为表做关联对吧,关联维表,因为DWD与DM做关联,关联好以后呢写到。DWS里边。对吧,DWS呢,是咱们的q house,那其实在这个过程当中啊,我们为了加速查询,或者说做一些什么驱虫的功能,要用到一个。啊呢,起到一个辅助的作用啊,当然这个在其中哪一块需要用到,我们到时候再聊。现在呢,你不用操心对吧,反正因为实时这个业务啊,一般都还是喜欢用,只要你数据量不大。对吧,你存一些少量的数据,那还是非常好用的,毕竟人家还是一个内存数据库。对吧,毕竟人家是一个内存数据库,效率是非常高的啊,所以这中间呢,也会有这个red的参与啊呃,那最后呢,我们把数据写到DWSN啊,那像这个连线数仓一样,这个ADS层,那么ADS层呢,直接去消费这个数据。
09:16
写这个数据接口,然后呢做可视化对吧,最后呢,数据的一个实时的可视化,咱们用的一个框架呢,叫sugar。呃,它是一个百度的收费的框架。啊,因为咱们要做实时展示嘛,你希望动态的能够去刷新,所以呢,咱们用的是一个收费框架,当然这个也跟大家说了,它是有试用期的。啊,试用期的有30天的时间,所以到时候大家用到的时候呢,是不需要花钱的,OK了,当然真的花钱,你用那个最简单最low的那个版本啊。那也花不了多少钱,它是60块钱一年啊,叫大屏长鲜版,其实给大家送的那30天啊,这个平台给大家送了30天,也就是其中的大屏长线版,对于我们做可视化用是够了,它只是说有一些很高级的图表用不了,有很多东西呢,可能要额外收费,对吧,那这些东西呢,我们就不用,那生产环境当中呢,你可能公司当中会去花这个钱去用一下啊,所以呢,这个看起来就比较简单了,整个的围绕着flink跟卡夫卡展开的。
10:21
对吧,当然整个程序啊,如果说代码也像这个架构图这么简单,那就好了啊,那是不可能的啊,这里面有很多的难点啊,有很多难点,比如说今天下午我们刚开始写的这个。Dim层,因为我们说了ods我们已经做完了,相当于对吧,那接下来呢,我们就要写这个D层。先写DM啊呃,为什么先写DM不写DWD呢?因为。DWD层。有两块行为数据跟业务数据对吧,有两块啊,而DM层呢,只有业务数据里边有维表层啊,所以呢,我们先写这个DM,而这个DM层就是我们整个项目将会遇到的大家遇到的第一个重难点。
11:13
这个代码一点都不简单啊,不轻松的,我告诉你啊,虽然是我们写的第一个大的。需求对吧,但是这个代码一点都不轻松,我可以告诉大家比还是很有难度的哈,还是很有难度的,当然今天下午肯定写不完,你这也放心对吧?好,那这是我们所说的它的一个架构啊,我们就搞定啊,就把这个看完,整个PPT就播完了,到此就结束了,OK吧。
我来说两句