00:00
好,接下来我们看一下D达的地程,还有一个叫四件表的一个解析,刚才我们解析这个启动表的时候,是不是感觉很简单啊,因为它是单程,就一个JS,而且用到了核心的函数就是GA的JS在啊,传1K对应的Y就出来了,很简单,那下面呢,这个四线点它就结构比较复杂了。啊,真正在企业当中呢,这种复杂的结构其实也比较少见,它算一个难点啊,也是整个咱们项目当中涉及到的接入点啊,被认为是最难的啊,如果这块能扛得住,那后面都没问题啊好,那我们来看一下。如何来解析?那首先这呢,就是这个整个事件表的数据结构啊,首先呢是浮线竖线拼上杰森。对象,那介实对象里面还分了三块,第一块common cm,比如公共质的,第二块是哪一个应用过来的,然后ED具体的事件啊这么高。
01:11
好,那这块继续,那这个公共字段把它解析出来,希望呢,解析成这个样子,等于说传进去K取出Y流,传进去K取出Y流,这个时候是感觉很简单啊,因为只要把它创建成一个真实对象,传真去K就能得到对应的外交值,那这里面即使我不用get介值了,用什么呢?自定义UDF可以实现一进一出啊,也说传进去的是K,传出的是Y。啊,这么一个过程。那大家稍微回忆一下自定义udf的步骤。
02:00
第一个类进行udf,然后写它的方法,什么方法,方法比什么固定的。Evaluate,对吧,啊value OK哈,稍要回顾一下,那这呢是自定义UDF实现公共字段的一个解析,那再往下。下面呢,我这块呢,我要解析这个对应的事件这个,但是呢,这个事件呢,它是一个事件数组。它既然是一个事件数组,我将把这个数组啊打散对吧,我得取出一个一个数组的值,然后再给它进一步的一个解析。你要不把这个事件取出来,那你在解析的时候,你根本就不知道它是几个字段,那比如说这个点击。啊,时间点击表它仅十几个字段,那么这个通知表呢,可能就两三个字段啊,这字段呢就不对。
03:00
啊,那就需要用到一个炸裂函数,咱们之前学过炸量是吧?啊,一个lo是吧,好炸裂,那这里面我们需要自己去制定一个udtf炸裂反向啊,将这个数组炸裂开,同时取出两个字段,分别是对应它的事件名称。和事件整体。啊,我为什么要取这两个值呢?因为我只要取出来事件的名称,以及对应的事件的整体,那我解析的时候,我就知道按照什么表的结构去解析。比如说这个表的名字是点击表啊,评论的评论表。那么下面这些字段就一定对应的是评论的字段啊,如果你这个直间平论的是收长的,那下面对应的也就是收长的字段,因为这样才能进一步解析,否则的话,这里面一下子出来11个时间。
04:01
那理想不去解呢,就没法去解对吧?啊,所以说要把它拆开啊,那这里呢,就是用DF解决公共值的,用DPF解决四件值。啊。OK,那还剩一块服务器时间,那这个你就争取正常的一截取就完了,对吧?啊出现一些切课。啊,那在右侧我要建表了啊,建表那建一张这个是相当于是一张中间表啊中间表。创建一张表,那这个表的结构是什么样的?它首先并没有一步到位解析成具体的事件,先创建中间情况,那中间情况上边这一部分对应的公共指段,那这一块对应的事件的名称,嗯,事件的内容,服务器事件。啊,日后呢,我们基于这张表当中的世界名称和事件内容,我就可以解析了,因为只要知道它是什么名字,那我这里面的字段的格式就是严格按照这个表的格式建,那我要解析这里面的接子。
05:17
我是不是也就可以也可以类似的用那种get杰森object吧,哎,那就简单了,所以说是这样过程啊,好好下面公共指导内用来,然后剩下的是对应事件名称,下面呢是对应的事件内容,好估计时间,然后呢再创建分期表盘,停着办按照日期去创建。然后存储位置啊,而且呢,存储的这块呢,我换成了这个update啊,这个呢,主要是为了大家啊,去各个这个存储格式啊,压缩格式啊,都给大家用一下啊,后边我们会讲啊,都让大家见识见识,因为在不同的企业当中,它用的这个不一样啊,不一样,那之后再给大家说,咱们在学当中选哪一个更好一些啊,相对来说呢,是orc加。
06:07
嗯,加这个啊,存储效率会高很多,比如说稍微提一下,100G的数据压缩完能压缩到10G。性价比很高很高。好,那这个呢,是这个滴答历程解析数据明细啊。拿来那下面的话,我们就要建一张这个表嘛,对吧?啊,因为我们要往这里面去导数据对吧?啊导数据那么要建一张这张表。啊,那我们建一个。啊。还是这的地方啊一种D啊,这是这张表好,然后呢,可。
07:00
E。好,这那这张表格知道。那这里面应该有个分区吧,后面写好,那创建这里的表字段,那表字段呢,就包括公共字段这么多啊拿过来。工时都有的。啊都有的,然后之后对应的事件名称一分成一分。内,然后什么类型。接下来再来事件内容,一本一文的。然后还有一个服务器时间啊,Serve time是一样。
08:02
行,OK。那这是定义这么三个额外的变量啊,时间名称时间内容和服务习时间啊,那定义完这三个内容之后啊,下面还有对应的分区存储呃,加缩格式啊啊存储格式,它配的还有这个存储的位置啊,我们来定一下。那这里面去。第。DT。时间。咱们目前是不是都是按照这个天气分析的,后面呢,我们还有周和月啊,那这时候star start star。这个。PT吧。ET啊,这个这种这种格式,当然你还用那个咱们之前的像什么or RC啊网啊,问题也不大啊问题大。
09:07
分开是存储位置,那我们把它存储到。WARE。就ous啊尔house下面的D卖今量下面的这是哪层了,DWD层啊,DWD层下面的DWD一个好,那这样呢,这个数据呢,我们就建好,你这张表就建好了,建好了执行一下。剩下。对。这样呢就创建完成了,创建完成这个表之后,下边我们就要研究的就是要向这张表里面导数据。那我们原始数据是在DW ods层,OD层的数据只是一个。
10:00
就是一个string,你看我们对应这个原始的事件表,只是创建了一个line这个string,知道吧,大家对它进行一个解析,那这里面解析的过程就用到了自定义UD udtf啊啊。
我来说两句