00:00
好,各位同学,那咱接下来呢,继续往下进行,呃,下边呢,我们要看的这张表叫做流量域动作事物实时表,OK,那它所对应的那个业务过程,哎,指的是什么呢?这个所谓的动作指是什么呢?哎,它当然对应的就是我们去做那个买点的时候所收集的那个动作的行为,对吧?那咱们日志当中那个动作的行为指的是哪些动作呀?哎,实际上指的是,呃,是我们去什么点一个按钮,或者说去呃这个输入一个这个文字是这样的一些具体的动作吗?其实并不是咱们能看到我们日志当中咱所收集的那个动作呢,是一些是不是具体的业务操作呀,对吧?比如说领券,比如说这个架购,比如说收藏,咱们收藏的实际上是我我们统计的,实际上是这样的一些动作,其实这个呢,我们从哪就能看出来呢,从咱们的日志里边就能够看出来,呃,这个动作应该来自于哪种结构的日志啊,大家说应该来自于那种就是页面日志对吧,页面日当中咱是不是要。
01:01
个这样的actions这样的一个字段呀,对吧?这里边存放的是不是就是咱们的一个一个的动作,来我们可以看一下这个例子啊,你看这个动作是一个什么,是一个fair at,是不是就是一个收藏商品的动作呀,对不对,对不对,所以说实际上咱这个业务过程所对应的动作指的是我们在浏览页面或使用移动端的客户端的时候,对不对所做的一些业务操作,比如说领券诶,架购收藏等等等,是这些啊,这一点咱要搞清楚,行了,那接下来呢,我们就来看一看,就是这张表,最终咱们设计出来的表结构应该是什么样的啊,来,我们把它拿出来一起看一下最终的键表语句CTRLC来给它拿过来啊,那现在我们还是先来看一下它的表名是什么啊,呃,表名相对也比较简单,是dwd traffic action traffic就是流量域对吧,Action呢,也就是咱的呃,这个动作对吧?好,那就来继续往下走,下边我们明确一下这张表它的这个具体的表结构,行列分区先看行,其实大家可以想一你说咱这张表每行它应该是一个什么应。
02:01
应该是一个动作对吧?一行应该是一个动作啊,这一点要给它搞清楚好,那接下来呢,我们继续往下走来看一看,就是这张表当中具体的字段都有哪些,实际上咱们这张表的字段呢,绝大多数也都是直接来自于咱那个日志的啊,是这样的啊OK,它来自于哪种结构的日志的,刚才已经看过了,是那种页面结构的日志对吧?那所以咱接下来呢,还是跟之前一样,咱们对照着去看一下这个表里的字段啊来,CTRLCF3我给它盯在这儿,然后呢,我们找到之前的那个页面日志,这就是一条完整的页面日志,对吧?来我们简单的做一下这个对比啊来,我们现在呢,先看一下前面这几个字段,来看这儿从province ID开始往下走,一直到version code,这个都是来自于都,都是来自于哪对应的都是雷,都是common下边的这个公共字段对吧?都是一些典型的维度信息,咱们已经看到很多遍了,就不再解释了,然后继续往下走啊,注意观察,从这个during time开始往下走,一直走到source time,这些其实来自都来自于哪个哪哪部分。
03:01
造呀,应该是来自于配置的对吧?OK,那现在有同学可能会纳闷了,诶,我这张表不是动作日志表吧,对不对?那为什么里边还会有页面的信息呢?那这些页面相关的字段对吧?在咱这张表当中,我应该算作一个什么呢?是一个维度啊,还是一个度量呢?对吧?因为在事实表当中,我们除了维度就是度量对吧?那你说这些信息在这张表当中应该是作为一个什么存在?应该是一个维度吧,对吧?OK,那啥意思啊,也就是说,诶,我下边是不是应该会有一个具体的动作呀,对吧?那这个动作是我们在浏览哪个页面的过程当中去做的,那所以说这个页面信息是不是应该在某种意义上来讲是一个维度啊,对吧?诶,是这样的啊,这个大家理解一下,那前面我们就提到过,说我们在设计事实表的时候呢,诶,事实表相关的维度应该尽可能的丰富,对吧?越丰富是不是将来支持的指标越多呀,对吧?所以说在这儿呢,有点关系的,我们就给它放在这里边了啊OK,那接下来继续往下走,那往下看我们找到与之对应的那个配置啊,这是配置的字段,这是我们表当中与配置相关的字段,我们就不再一个一个对照去看了啊,应该没啥问题,好,那接下来继续往下。
04:08
下面的是不是就是这部分这红笔又不好用了,反正这个丁图跟红笔一起用总会有问题啊,来我们看一下,呃,从action ID开始往下走到这个action time就是这部分字段,它对应的应该是什么?应该是我们那个actions里边的那个action的字段啊对吧?大要要明确一下啊,就是在日志当中,这个action是位于一个数组里边的对吧?是一个结构体,是它是一个数组,然后数组当中呢,是不是?呃,它的元素类型是什么类型,是这个阶分对象类型对吧?那阶分对象的字段是不是有以下四个呀,对吧?实际上我们表当中的这几个与动作相关的字段对应的是这个,诶动作对象的里边的每个字段,这一点咱们一定要给它搞清楚啊,是这样的啊好了,那接下来我们竹竿的对应一下啊,那这边有一个XAD,哎,这个要搞清楚它对应的是不是就是它呀,对吧,这个IID在这指的是什么,实际上就我们这个动作的类型,对吧,你到底是一个什么动作,哎,你是fair还是car对不对,哎等等等指定的就是这个。
05:08
动作的类型啊,好接着往下走,那这儿还有两段就是item,一个是item type,一个是item,这俩指的是什么呀。其实很简单,它指的是不是就是咱们这个动作的目标啊,对吧,或者叫做动作的对象,你比如说我这是一个领券,呃,我这是一个收藏,那你收藏收藏的是不是应该是商品,对吧?那具体是哪个商品呢?诶在这里给他写一下,诶是这样的啊,当然如果我这个动作呢,诶我是一个领券的动作,OK,好,那我的item time是不是应该就是领券,那我的动我我这个item是不是该是一个具体的券的ID啊对吧?它是这样的一个逻辑,这一点给他搞清楚好,那接来再往下走,这还有一个字叫做TS,这个TS指的应该是啥呀?是不是咱这个动作发生的时间呀,对不对?大家要注意一下,这个TS跟下边这个TS它俩不是一回事吧,这个TS指的是什么来着?是我们跳入这个页面的时间对不对,而这个action当中的这个具体的TS指的是我这个动作发生的时间啊,是这样的啊,那所以大家想一想,你说我们这张表当中的这个两个时间,一个data ID,一个icon type,它应该来自于哪呢?十频该来自于这个位置啊,对吧?哎,这1.1定要给它搞清楚好了,各位同学,那截止到现在呢,我们这张表的字段咱们就。
06:16
就过完了,实际你会发现这张表的字段几乎是全部来自于日志的啊,当然了,里边有一个特殊就是pro ID,这个咱们简单的处理一下就行了啊好了,那字段咱就都说完了,那之后呢,我们再往下走,下边我们再来明确一下它的分区规划,它的问题,固话呢,仍然是那种通用的增量分区,这个没什么特殊的,我就不再啰嗦了啊,行了,那这个表的结构咱就说完了,视频我给他停一下。呃,好,接下来呢,我们来看一下动作事物实时表的数据状台,呃,首先咱还是老规矩啊,先来分析一下它的数据流向,那它数据流向其实跟之前呃那两张时时表也差不多,对不对?他们都是来自于ods的日志表的,对吧?日表同样是没有历史数据的,所以说这个不需要区分首日和每日,也就是我们只需要每天把当天的数据是不是拿到,拿到之后处理一下,放到时时表当天的分区就行了,对吧?每天都是这样的一个流向啊诶,那我们这儿呢,就不再去呃,特别的强调了,OK,那所以这呢,我们也是只需要写一个circle就搞定了。好,那接下来呢,咱们就开始写,呃,首先我们是不是得先来一个select from对吧?From OS log INC没问题吧?好,那完了之后呢,我们V绕一下,DT等于2020杠零六杠幺四,这都是常规的写法,没什么特殊的,好,那关键问题来了,接下来咱需要怎么做,是不是得做一下过滤啊,对吧,大家要知道我们这儿呢,是要找的是什么,是多所有的动作操作对不对,所有的动作啊,OK,好,那我们应该来自于。
07:40
这张表当中的什么样的日志呢?这个动作。是所有的日志咱们都要吗?那显然并不是,比如说这来一个谁来的星杀,OK,那这么多的日志,不是每一个日志里边都有咱们想要的动作,对吧?什么样的日志里边会有动作呀?对,Action ID不为空的对不对?那是不是才有动作呀,对吧?OK,那当然呢,这个大家有的同可能一下想不到这一点啊,有的想的可能是什么呢?就是OK,呃,这个动作是肯定是位于页面日当中的,对吧?那有的同学可能会想到,诶,我是不是也可以用配置ID不为空去过滤啊,对吧?哎,但是你要知道配置ID不会空并不一定代表它的action也不会空,为什么意思呢?你比如说我在浏览页面的时候,我没做动作,有有这种可能性,对吧?我只浏览了我没没什么都没干对不对?那这种情况下是不是会产生一条这种日志啊,对吧,配置呃为不为空,但是呢,Action特是空的,那这样的数据我们也不能要,对吧,所以我们就直接用action过滤,这个是哎比较正确的,比较准确的啊直接action不为空那就完事了,OK好,那咱接下来呢,就继续往下进行,我把这样的数据呢,给它过滤一下,哎,来。
08:44
And action应该是not,当然这个要注意,这个过滤要想生效也得保证什么呀。也得保障,咱们那个就是CP给关了对吧?OK啊,那现在咱们查一下好了,那现在数据咱该查的是不是就都查出来了,现在返回的结果里边是不是都包含action对吧?哎,但是现在问题来了,各位同学,你看咱们拿到的数据,它有一个什么样的特点?
09:09
拿出有什么特点,注意啊,这是不是一行数据对吧?OK,这一行数据里边那个action它是怎么存的。怎么存的,它是一个数组对吧,这一条数据当中,我这个action是不是放在了一个数组当中,既然是数组就可能会出现什么情况。就是我这个这个数组当中是不是可能会有多个这个元素啊,对吧,那大家都知道,在这个数组当中,一个元素实际上对应的是一个动作对不对,那也就是现在我们面临一个这样的情况啊,OK,我们这儿拿到的这个数据呢,一行里边是有多个动作的,没问题吧,但是我们要知道,我们将来往那个动作实时表当中装载数据的时候,我们有要求什么要求对吧?因为动作实时表呢,我的力度应该是动作对不对,一行应该是一个动作吧,对不对,OK,那也就是我将来呢,是不是需要把这个动作一行一行的放到我们的这个动作十表当中啊,对吧?所以这里边儿我们在装载的过程当中,势必会涉及到一个操作,什么操作就是。
10:10
一进多出的一个操作嘛,对不对,因为在原来这张表当中,我一行里边是有多个动作的,但是我最终目标代表呢,要求一行只能有一个动作,所以说我是不是必须得得涉及到一个一进多出的操作,对吧,那一进多出的操作在have当中如何实现呀?是不是肯定得用UDTF函数去实现这个,呃,所谓的一进多出的扫作呀,对吧?还有当中三种函数吧,Udf一进一出啊UDAF多进一出,UDTF呢是一进多出对不对?那当然这个一和多指的是行对吧?那咱现在显然需要用到一个UDTF函数帮我们去实现这个功能,好,那大家之前学have的时候应该用过一个UDTF函数,对吧?那也是最常用的一个叫做啥1LO的对吧?诶所谓的炸裂会叫做爆炸函数对不对?那大家现在还记不记得那个函数怎么去使用。
11:00
还记得不?还记得吗?好像有同学已经忘记了啊,所以咱们还是先花一点点时间,我们系统的去复习一下这个explode函数的这个使用,这个语法什么的,应该有点印象吧,你要用UDTF函数,前面得接个什么东西来。得接一个let you吧,侧写视图吧,对不对啊,应该还有点印象啊,好,那现在呢,我们呃,就是靠着点残余的印象,咱们去复习一下啊,来,咱们去看一看,好那现在呢,我们还是先模拟一个小表啊,模拟一个小表,比如说在这呢,我去设计一个这样的表,这个表比较简单,就俩字段,一个是ID,那后边呢,还有一个字段是AR,这个ID呢,就是一个普通的搜串类型,AR呢,它是一个have当中的A数组类型,OK,那现在呢,我们构造一点假数据啊,比如在这呢,来一个1001,那后边呢,我给他随便放一个数组,但是我这个写法可能不标准啊,我就不写引号什么的了,哎,这就打假定是一个数组啊,然后往下往后走,那这边呢,我们来一个一零,这个呃100呃二对吧,那后边呢,咱们也是给它来一个数组。
12:02
来这个呢,我来个B,来个C,来个DOK,好,就来两行就得了啊,就这样吧,意思一下就行好了,那现在呢,我们这个数据就已经摆在这儿了,那接下来我们要做的工作是什么呢?来,咱要把这个A给它炸裂对不对?那这个circle它怎么写?比如说这个表的表名就叫TBL啊,Table的简写对不对?咱应该怎么写?这个circle是不是应该是select,然后呢,From对吧,上面这张表就叫TPL啊,然后后边怎么写?是不是在的表明后边去接上那个let view啊对不对,OK,那在这呢,我们来一个let LA没问题吧,后边是不是就可以跟UDTF函数了,对吧,Ex prolode explode OK,那完成之后接下来怎么。现在怎么是不是里边就可以放上我们那个数组字段了呀,对吧,你要炸哪个字段,是不是就把哪个字段放在这个explode里边啊,对吧?AROK,那后边怎么办。后边是不是还得写一个别名啊,对吧?我记得是应该得写一个tmp,然后后边的还得写一个as as后边呢,是不是还得写一个别名,比如说我们叫做item,是不是这么写的,之前是吧?那大家有没有有没有过疑问啊,这个TMMP是干啥用的?我这个item又是干啥用的?为什么要写俩别名,这是什么意思呢?
13:17
啊,这个item是给谁用的?这个谁用的?哎,可能有的同学这俩概念不是特别的清晰啊,OK,那暂时呢,我们先不去考虑这个问题,那一会儿呢,我再给大家详细的去解释这俩到底是给谁用的啊,首先咱们现在需要考虑一个问题啊,你看啊,我们现在这个语法是不是已经写完整了,对不对?你看咱们这个circle现在变成了一个什么样的形式啊,变成了select from from什么东西,From后边这一大串,对吧,这是一个整体。你要把它成一个整体,也就是说我们现在写了这个写视图之后呢,我们select from就不再是原来的这张表了,不是这样的数据了,对不对,那我们现在select from的这个所谓的一个虚拟表,相当于是对吧,那它应该长什么样呢?它的结构应该是什么样呢?
14:07
对不对,你现在from不再是这个原表了,而是一个相当是一个虚表啊,一个虚拟表,这个虚拟表的结构应该是什么样的。OK,好,也就啥意思呢,哎,这个这个虚表是什么样,那我这个谁来的星,返回的结果是不是应该就什么样,对不对,那现在问题就来了,哎,你现在谁来星返回的结果应该长什么样?哎,那我就直接这么问大家吧,你就说返回的结果应该是几行几列,哎把这个问题看大家能不能回答对。回答回答下这个问题,几行几列。两列什么几行?几行几列啊,就是这个问题要答不出来,那就说明大家这个开这个这个这个炸裂函数你就没学到位,对,就是你select from from的数据是什么结构,咱必须得清晰,对吧,你连结构都不清晰,那这个绝对,你上面选啥你也不知道选啥对不对,OK啊,那这个到底是什么样的呢?应该是六行三列,六行三列啊,我好像就是只有一名同学答对啊,六行三列才对啊,这六行是哪六行大家也很清楚,三列是哪三列呢?
15:11
是哪三列,前两列就是自带的,这两列会出现在我们的结果当中,还有谁呢?还有我们炸出来的这个item这一列啊,实际上一共是这样的三列啊,六行很简单对吧?那现在我把这个结果给大家写一下啊,那应该就是把他俩先CTRLC粘出来,那之后呢,在这儿呢,再补上一个字段,这个字段呢,你就就叫什么,就叫艾特,实际上这个字段就是你炸出来的这个字段的名字啊item现在大家应该就已经知道是啥了啊,但是这个tmp到底干啥用了,一会来来解释啊,那这来一个A对吧?这个数据应该长这样对吧?这一个A,呃,完之后这边CTRLC一下啊走回车走,那这个呢应该是B,那这个呢应该是C,这个都很简单,对不对,那接着往下走,这个呢,应该是来一个B对吧,那这来个B,那CTRLV,这个CTRLV,那这儿呢,应该是来一个这个C对吧?啊这个呢,应该是来一个呃,这个D啊,这个应该没啥问题吧,好了各位同学,那截止到现在呢,那我们这个所谓的虚拟表就出来了,咱现在select from的这个整体实。
16:11
实际上就是这样的一个结构了,诶这个一定要搞清楚好了,那这个要能搞清楚了,那现在这个item的作用大家就知道了,这其实就是我们炸出来那个新列的名字对吧?列名好,那这个tmp到底给谁用?有没有同学会以为OK tmp是给我整个虚表去用的,是整个虚表叫tmp吗?是这样的吗?其实并不是,其实并不是啊,这个TMMP是给谁用的呢?是给我们这个UDTF炸出来的那部分字段去用的,炸出来的那部分字段它其实相当于是也是一个虚拟表,对不对?这个虚表跟我们原表组成了一个最终的这样的一个诶,一个结果,而这个所谓的tmp指的是新炸出来的那部分字段所组成的那个所谓的一个小链,哎,这一点大家要搞清楚,OK,好,那有同学可能纳闷了,我什么叫做炸出来的那部分字段呀?我这个炸出来的字段不就一个吗?不就一个item吗?是不是这样的?目前看确实咱们就炸出来了一个字段,对吧?哎,但其实告诉大家的是需要告诉家是什么呢?就是UDTF函数,它返回的字段,它炸上来的字段,不不一定就只有一个,我可能有多个啊,是这样的,OK,好,那完了之后,比如说举一个具体的例子,咱们就以这个一。
17:25
Pro为例,这个e pro咱们之前所学的就是它接收的参数类型是什么类型啊,是A瑞类型,对吧,咱是不是只是给他传过A瑞啊,对吧?但其实你去官网查看的话呢,你能发现其实它也能接收map类型,你不不是字符串是map类型啊,只能两种,一种是额瑞,一种是map,也能接收map,那你要给他传一个map的话,那你说他炸出来的数据长什么样呢?它会炸出来两列对吧,一列就是什么呢?哎,就是K,还有一列呢,就是value,哎,是这样的,OK,那这就是你给他传卖所炸出来的内容,OK,那完了之后你要是给他传map的话,我后边你就不能这么写了,你得怎么写。
18:03
哎,这个TP留着,然后as后边你得咋写呢?你得写两个字段,一个是K,一个是哎V,你得这么去写啊,OK,这个名你可以随便写,就是别名嘛,对吧?那这样一来的话呢,咱这会多出来两列,这一列存K,这一列存value OK,你看这这样这样一来的话,这个表是不是就比较形象了,对吧?有行是不是也有列啊,对吧?那我们得到就是一个所谓的一个小表,OK,那这个tmp实际上指的是这一部分字段所组成的一个小表啊好,那这个MP它有什么用呢?大家能不能想象到这个东西有啥用?这个东西有啥用,能想象到吗?比如说我们还回到之前的那个啊,OK,那这边咱们回溯过去这个TB有啥用。其实目前看是没啥用,但是你如果你这么写的话,它就有用了,比如说举个例子啊,这儿我给他选一个ID。这个ID指的是什么?是不是咱们那个列的名字叫ID啊,对吧,如果这样一来的话,你这个虚表会变什么问题。将来你从这张表里选数据是不是,假如说你直接选一个ID会有歧义啊,对吧?哎,这也叫ID,原表那边有个ID,我这也有ID,那这时候你可以怎么选了,你是不是就可以S让这写啥,这写是不是tmp.id就能够区分开来对吧?OK,那这是咱们这个别名的一个主要的作用,这一点咱必须得搞清楚好了,那各位同学,截止到现在呢,咱们这个所谓的UDTF就算是回管了,其实并不难,咱只需要知道就是我select的from对吧?From的这个表的结构是什么样的,对不对啊,除了这个行会变多列,它也会增加一个,诶这样一来,这样一来的话,大家再呃从这里边选数,你就知道我拿的是什么数据了,完了之后你想要什么,你再从里边拿,那就完事了,哎,这一点要回忆起来啊,好了,那这个视频我先暂停一下啊。
19:44
啊,好了,各位同学,那现在我们看一看,就是这个动作日志表的数据装载,我们最终到底应该怎么去写,呃,现在咱基本上已经明确了,对吧?我们需要拿到这张表对不对?然后呢,需要将这个表当中的action这个数组是不是进行一个炸裂的操作,问一下大家,你说这个咱们能不能炸?
20:03
这能不能炸裂?能能不能炸,能炸呀,对吧?哎,你只要保证什么,它就是能炸的,你只要保证你这个类型是A瑞或者是map,是不是咱们就可以用explorelo的函数去进行炸裂,对吧?那X数组在咱们的这张表当中,是不是正好就是一个数组的结构对不对,然后里边是结构体,所以我们这这是没有任何问题的。好,那接下来呢,咱们就来把这个炸裂去写一下,首先那你要想用炸裂,那就得怎么呢?得用let view对不对?那let在哪写呀?通常是在你from的后边去写对不对,From表明后面写,是不是就在这个位置写呀,对吧?好,那现在在这儿呢,我们来上一个let,后边来一个什么ex pld explo,没问题吧,里边咱是不是就可以放上那个所谓的X思维呀,对吧?哎,然后后边是不是补上那个语法tmp,然后后边再来一个什么,再来一个as as,后边咱们随便起个命名,比如说我就叫做action,没问题吧,好,那现在这个语法咱们就写完了,写完之后呢,那现在其实我们就可以把这个东西查一下对不对,OK,那现在呢,正好可以验证一下我们刚才那个说法啊,就是说我们加上这一堆东西之后,我们得到的虚表是什么样的,对吧?那现在呢,我们就可以执行一下,你看我现在是不是就是来型C来型反回的数据是什么,那咱的虚表是不是就什么样了,对吧?那现在我们直接回车来看一眼,这个虚表你看啊,首先行肯定是变多了啊,这个呢,我们可能不太好去验证,这个我就不再一点点去看了,这个行肯定会变多,OK,那接下来呢,我们重点看一下,后边我们说了这个字段是不是会多一个呀,对吧,你往后走,你看它字段有没有多。
21:34
走走走。哎,你看最后一个是不是多出来的一个字段,对不对,这个多出来的字段是不是就跟刚才我们举例子当中的那个,呃,相当于这个item或ID这块是一样的道理啊,对吧?哎,这就是咱们多出来那个,所以说这个虚表是这样的,大家一定要搞清楚好了,那这个完了之后,我们继续往下进行,但在这呢,我们再验证一个小细节,什么小细节呢?我前面说了,说这个tmp指的是什么来着,指的是咱们炸出来的那些字段是不是组成的那部分表啊,对吧?OK,那这个怎么能验证出来,你比如说在这儿呢,我来一个tmp,然后tmp你看我点一下,你看我点完之后它只能点哪个字段。
22:09
是不是只能点X字段呀,对吧?能理解吧,这样一来是不是就能够验证我们刚刚那个说法,说这个tmp指的是我们炸出来的这几个字段组成的那部分呀,对吧?诶这一定要稍微的理理解一下,你看我原表当中存原表当中这些字段你是点不出来的啊对不对,这个一定要注意一下啊,行了,那在这儿呢,咱们就说这么多啊,行了,完成之后我们现在继续往下进行,那现在咱们得到的数据呢,长这样对吧?那我们是不是得从这一堆数据当中去寻找我们这个原表当中所需要的这个字段呀,对吧?OK,也就是现在我们这个力度就已经这个,呃,搞完了对不对,像我我现在是不是已经能保证这这张表当中一行是一个什么呢?一行是一个X嘛,对不对,咱现在已经能保证一行是一个X,那我们要做的仅仅就是啥,是不是从这一堆东西当中去寻找我们所需要的每个字段了呀,对吧,这个比较简单,那这个直接怎么办?是不是就各种点就行了,对吧?有些字段它是来自于common的,有些字段呢,是来自于配置的,那下边这些字段应该来自于谁?
23:07
这个是来自于action丝还是来自于action?显然是来自于action对不对?那所以这块呢,大家搞清楚就完事了,这个我就不再一点点写了啊,那剩下的事儿我们就直接看一下这个文文档当中最终的结果,结果就可以了啊来,我们把这个数据状态也数拿出来,这里边的核心其实就是那个UDTF啊来拿过来,这个我把原来的写的覆盖掉就行了啊来吧,各位同学看一下我们文档当中的最终的结果,呃,首先我们先看子查询,这有一个select,这呢是不是有一个from log对吧?然后边紧接着就来了一个review exp actions跟刚才咱们写的是一样的,之后呢,它是不是就按照我们刚才所说的,从这里边每个字段当中去点每一个这个字段就完事了,当然大家都知道common是一个结构体,配置是一个结构体,我们新炸出来的这个字段,它也是一个什么呀。也是结构体,为什么?因为在原表当中actions它是什么类型的数组,是结构体类型的数组,对吧?那也是我们占来的一个元素,是不是就是一个结构体啊,对吧?所以都是结构体,那都是结构体,你就各种点就完事了啊这个比较简单啊,行了,那这个完成之后呢,呃,我们还需要去处理一件事,就是就是这个pro ID对吧?那我们需要跟下边的诶这个ods base这张表进行一个关联,关联完之后拿到最终结果,把数据呢,写到这张表14号分区,那就算是搞完了,诶是这样的啊,这是咱这张表的数据状态,行了,完成之后视频我给他停一下。
我来说两句