00:00
呃,来吧,各位同学,那现在呢,我们要做的工作就是这张表的这个数据装载了,那刚才我们看到了他一共需要写两个数据装载宇宙对吧?那我现在先看首日,首日那还是以2020杠零六杠幺四为例好,那现在呢,来看一看咱这应该怎么做啊,按照我们刚刚的这个,呃,这个流向图对吧?我们第一天的时候应该怎么了,是不是应该是拿到ods那张表的十四二,就是第一天的全量分区啊对不对,拿到之后来一个动态分区是不是就完事了对吧?好,那接下来呢,咱们就去开始去落实一下这个事儿啊,那首先呢,我们需要先select,然后呢,From一下,From哪张表o DS cart in for对吧?啊,那完之后大家就刚才有负有INC,那咱们用谁呢?是应该用INC这张表啊,对吧?好,那完之后我们来一个DT等于2020杠零六杠幺四,我顺便问一下大家啊,负那张表是给谁用。Car对吧,有一个INC的,有一个负的对吧,那负的是给谁用的,那个全量表给谁用的。啊对,是给周期快照表用的吧,应该对不对啊,这个周期快照表什么时候见啊,后边咱们会见到的,见到的时候咱们再详细的去说那个全量表啊,到时候再说,那这个数式表是不是咱们都用这个增量图啊,对吧,把这个搞清楚好,那现在我们就挨走,那现在呢,我把这张表的数据呢,我先给它都查出来,咱们看一看里边长啥样啊走,咱来看是不是又长这个样子,对吧?那看到它之后,大家应该能反应过来,咱们需要先干啥,先过滤吧,对吧?来,所以在样呢,我得先按一下这个typeb得等于boot s.AP杠是不是ins inside呀,对,别的咱们就不要了吧,那完之后呢,我们现在要做的工作就是是不是从这个date里边去获取我们所需要的每个字段呀,对吧,好,那你需要哪些字段,是不是在这儿呢?我先尝试的获取一下,然后获取不到的咱再想办法就行了啊来在这儿呢,CTRLV快速的处理一下,那先把前面的标号给它去掉,CTRLF,然后呢,标号点星对吧,全部选中删除,换成逗号CTRLCTRLC好的,那现在呢,我们给它拿过来放在这个位置好了,那现在呢,我们所有的字段就。
01:57
已经拿到了,当然啊,这里边咱们忘了加东西了,忘了加谁了,忘了加那个date了,对吧?在这加一下也行,我们找到这个列选模式,然后呢,往下一拉对吧?来一个date点是不是就OK了,对不对,然后我们在右键在列选模式再关闭啊现在那现在呢,我们就已经把这些东西都给它诶拿到了,拿到之后咱们先尝试着查一下,看看哪些咱们能拿到,哪些拿不到啊走诶显然是报错了对吧?这里边我们哪个是拿不到的呀,这个都不光是拿不到的事了,这个直接给咱们,这是呃,报错了对吧?Cannot insert哪有insert。
02:29
导呃,Boot啊,我我少选了一个引号啊,少选了个引号啊来走来现在大家来看一下,那这里边他说哪个资是拿不到的,Fail的ID是不是拿不到啊对吧?Fail的ID,呃,这不是fair ID,这个是data ID拿不到的对吧?Data ID为啥拿不到?这个很很简单,因为data ID实际上呢,并不存在于咱们这张表里,对吧?他实际上这是怎么,这是我们自己是不是给他,呃将来增加的一个日期维度的一个外线呀,对吧?所以在这儿他拿不到,拿不到咱们就先给他租掉,那还有谁是拿不到的呢?呃,实际上呢,这篇我们就不用再试错了,我直接告诉大家,首先这个咱们肯定拿不到,因为在原表里边这个字段叫什么?就叫source type,它没有这个code的对吧?然后下边这个name幕,显然是不是也应该是没有了,对不对,所以这个呢,咱们把他俩先先先处理一下,看看其他的能不能拿到啊来我们走一下走诶那现在是不是已经都能够查出来了,对不对,那也就是截止到现在,那我们能拿的就都拿出来了,拿不到的一共有两个,一个是他,一个是他,那大家想一想,你说data塔ID将来咱们怎么处理。
03:28
这个你说好不好处理,这个好处理怎么处理就行,是不是只需要把这个时间给它格式化一下就行,我只保留年月日是不是就OK了,对吧?所以这个简单啊好,那完之后就是他了,他是不是得又又得去找那个那个字典表来,对吧?所以现在咱们快速的去拿下那个字典表啊,Select from一下哪张表应该是呃,哪张表来着,呃,Ods应该是base斯D这张表,对吧,它也是一个每日全量,那在这儿呢,我们先拿到它是不是14号这个分区的数据就行么呀,对吧,零六杠幺四,那找到它之后呢,那现在呢,我们再从里边去拿一下我们所需的字段啊,一个是dic code的,一个是DA,是不是name,对吧?那完之后咱这儿应该拿以谁开头的来着,没记错的话,应该是以二四开头的吧,对吧?Per code等于二四,那现在呢,我们执行一下,大家看这是我们这个来源的三四种类型吧,没问题啊,好了,那截止到现在我们这两个子杀群就都搞定了,搞定之后现在咱要是做一个什么操作,是不是把他们招集在一起啊,对吧?好,那我现在快速的招一下,那OK,我先把这个CTRLX。
04:28
给它放在一个括号里边,CTRLV,那这个呢,咱们往前推一下啊,管它叫做car吧啊,OK,那下边这个我们可能叫做DCTRLX放在括号里边CTRLV,这个呢,往前推一下,呃,这个呢,我们就管它叫做D啊,那就OK了啊行,CRT Di都有了,我们现在是不是可以把它俩draw起来呀,对吧?那draw的时候咱们用哪种join方式,用left join就行,对吧,Left draw,然后呢,后边我们再给它来一个连接条件应该是cut点点A。点那个所谓的so CE source type吧,对吧?它应该等于谁呢?等于di.di下游线COD没问题吧,好找上了,那现在咱就可以从里边去选择我们所需的数据了,对吧?那咱们所需的所有数据是不是刚才已经呃,所有字段已经处理好了,对吧?那现在呢,咱给他还放在这个位置,放这儿呢,之后呢,我们又有地方需要去稍微的处理一下啊,首先第一个就是啊,这个扣咱们是不是需要给它去掉啊对吧?这个不能要啊,然后下边呢,这儿这儿选那个谁就行了,DA name是不是就完事了,对吧?那我这儿需不需要加别名啊。
05:32
要不要加这个要不要加取决于什么呀,大家说。就取决于有没有歧义对吧,如果说我下边有两个字都叫d name,我上面是不是必须得加别名对不对啊,现在咱就不用加也没事啊好,那现在我们继续往上走,上面这个data ID怎么处理,Date ID是不是直接由这个cur time去处理一下就行了呀,对吧?诶我们刚才说过了啊,就是在做首日装载的时候,我们就把什么呢?就把这个create time是不是作为这个加构时间了,对吧?所以说data ID这个日期ID呢,我们就用create time作为这个数据来源就行了,给它格式化一下就行了,这个怎么去操作呢?这里面回到一个函数叫做什么来着,Date for麦的函数吧,这个函数大,之前有没有用过,应该用过吧,对不对,它怎么用来着?一共接收两个参数,第一个参数是日期,第二参数是格式化的那个字符串对吧?好,那现在呢,我们把create time给它放进来,后边呢,给它格式化成什么YYYY,然后呢,杠,然后杠DD这种格式是不是就行了,对吧?这里边有一个小小点要注意一下MYS当中是不是也有对form函数啊,对吧?但是那个函数当中的年月日这种格式化的字符串对吧?它的写法。
06:36
而跟have当中是不一样啊,对不对,MYSQ里面怎么写,是百分号Y,百分号M,百分号D吧,对吧,还是有点区别的,这个一定要注意好了,那现在我们就已经拿到了咱们所需的所有数据了,拿到之后呢,我们现在只剩下最后一步了,那就是啥insert吧,对吧,我们来一个insertright哪张表,Table dwd交易与加购物车对吧,增量这张表对不对?然后它之后呢,我们后边来一个啥,是不是来一个part呀,对吧,Part里边咱得写啥。
07:06
这个是不是又需要考虑一下了,对吧?那我们这些应该写到哪个分区啊,那刚才咱们分析过,我们这拿到的是不是所有的历史上的架构操作对不对,所以说在这儿呢,我们应该给它放在多个分区,所以就得用动态分区才行,所以这只写一个DT,那现在问题来了,下边你是不是得多选一个分区段的值啊,对吧,这个值咱们用谁?哎,其实就用谁就用data ID是不是就完事了,对吧?啊,当然我这不能直接把data ID放在这,你得你得把这个得得再写一遍啊,对吧,这个一定要注意啊,OK,好,那是什么意思呢?其实很简单,Data ID它得到的这个日期是不是就是相当于咱们这个加构操作发生的日期啊,对吧,哪天发生的我就让他去哪个分区,是不是就这个逻辑啊,对吧,很简单,好了,现在S都写完了,我们把这个表建出来,然后呢,咱们把它执行一下,测试一下,看看这个效果啊来我们直接走,那呃呃,少一个什么。呃,啊,少一个动态分区字段那个参数是吧?呃,这个没关系,因为我刚才是不是已经执行过一次了,对吧?呃,因为咱们那个参数是不是,呃在当前绘画内是有效的对不对,我这个绘画没关闭,所以说也是没问题的,那当然这个同学提醒了大家也要注意,由于这儿也要用动态分区,那时是不是理论上也得设置非扬格模式啊,对吧,这个注意一下就行了啊好了,那这个已经执行完毕了,执行完毕之后大家想想,如果我们现在这个效果应该是什么样的,应该是在这个表里边现在出现了多个分区才对,没问题吧?好,那现在咱们查看一下,看这个分区对不对啊,我们执行一个shops,然后后边呢,来一个,呃,这个table,呃,应该是哪哪张表table对不对啊,不用写table吧,应该是直接写表名就行了,呃,接谁来着DWD对吧?DW除以的块的I的INC就行对吧?来直接回车,大家看是不是就出现了我们这个十到十次的这五个分区啊,对吧?啊,为什么是五个分区呢?是因为我们自己模拟生成数据,咱们是不是就生成了五天的历史数据啊对吧,是这样的啊,其实说白了,那咱们这张实时表的首日装载其。
08:56
这相当于就是在干啥?就是在对我们业务系统当中是不是存在的那些历史数据做一个统一的处理啊,对不对,这就是咱们首日状态的一个意义啊,好了,那这个完成之后,我们继续往下走,视频我停一下。
我来说两句