00:00
好,那接下来我们看时间维度表啊,老规矩还是先看它的表结构啊,那时间维度表的表结构当中呢,呃,也是没有分区的啊,他也没有分区,那所以说在这儿呢,我们就重点关注它的行和列就行了,好,那现在我们把它的建表语句拿出来看一下。来大家一起看一下啊,那首先需要先明确的一点是啊,时间维度表当中,它的每行数据是一个什么啊,它的每行数据呢,是一个日期,比如说2020年1月1号,哎,这算一行,2020年1月2号,哎,这是哎另一行啊,也是一行数据,是一个日期啊,这个大家需要先搞清楚啊好,那接下来我们再来看一下它的列,也就是它的字段都有哪些啊,那首先我们看一下它的主见,主见呢就是年月日呗,年杠月杠日实际上就是咱那个哎日期啊好接着往下走,这儿有一个week ID啊,这儿的这个week ID呢,指的是周ID啊,也就是说,呃,本周是一年当中的第几周啊,其实就这个意思啊好,那下一个weekday weekday呢,在这指的是周几啊,比如周一周二周三啊好,那下边有一个day,这个day呢指的就是年月日当中的日啊,Month呢指的就是年月日当中的月啊,Quarter呢指的就是哎,当前的日期属于我们这一年当中的第几季。
01:19
季度啊,第几季度好,那下边year year指的就是年啊,这都比较简单,好那再往下看,下边呢,有一个is holiday啊,是否是工作日,那如果是的话,那后边就是一,否则的话呢,就是零啊好,那再往下走,Holiday ID,那这个指的是节假日ID,那如果说当天是节假日,那后边呢,就会有这个节假日的这个名称,那否则的话那就是空。好那最后我们再来看一下这张表的数据存储啊,那它的数据存储格式呢,仍然是parkque加上哎,拉泽罗啊,这是大家要注意的,那OK,那这就是时间维度表的表结构啊,那接下来我们就来看一下它的数据装载啊,往下翻。
02:02
啊,这个位置呢,有一个说明,我们一起看一下啊,那通常情况下呢,时间维度表的数据并不来自于业务系统啊,这个大家一定要注意一下啊,不像我们前边所讲的这些维度表啊,不管这个维度表,那它是全量的维度表还是特殊的维度表,那至少他们的数据都是来自于业务系统的,对吧?啊,那通常情况下呢,我们的业务系统当中是不会包含我们这个时间维度表的相关信息的啊,那所以说时间维度表的数据一般情况下都是我们手动写入。啊,并且由于时间维度表数据的可预见性,什么叫做可预见性啊,其实很简单,大家一起来看一下啊,就是我们时间维度表当中的这些时间属性,其实都是可以根据日历提前计算出来的,对吧?啊所以说那我们日期维表呢,没有必要每天去导入这个数据,那一般情况下呢,我们可以一次性导入一年的数据啊,那为什么是一次性导入一年的呢?啊,而不是两年不是三年对吧?这个其实主要是由于这个节假日的字段啊呃,由于一般情况下我们国家的节假日呢,我们一般情况下只能呃,提前知道我们下一年的这个节假日安排,对吧?那再往后的呢,你得等到明年才能知道,那所以一般情况下,我们一次性就导入一年的数据就可以了。
03:20
那具体怎么操作呢?那一般情况下,诶,我们就是写一段小程序啊,然后在这段程序当中呢,我们去便利一年的这个日期啊,然后呢,分别去计算每一天的这些日期属性,包括它的第几周啊,包括它是周几,那包括它的年月日和季度啊,以及这个节假日,那当然节假日呢要特殊一点啊,那一般情况下,我们去计算节假日的时候呢,可以请求网络上的一些日历接口也可以啊,把这几个日期特殊的处理一下啊,好把这些日期的日期属性计算完毕之后呢,诶,我们会把这些数据呢,写到一个文件当中啊,然后我们要做的事呢,就是把这个文件漏到我们的日期维度表当中啊,那这样一来,我们就完成了日期维度表的数据装载了。
04:05
好,那这个文件呢,我已经准备好了,就在这放着,我们可以打开看一下啊好,这就是我们日期维度表的数据啊,这里边呢,一共有两年的日期啊呃,有2020年的,也有2021年的啊好,但是呢,我们现在还不能直接把这个文件就漏到我们的日期维度表当中啊,为什么呢?因为咱的日期维度表它的数据存储格式是park馈的历史存储加上拉多拉压缩对吧?那我们这儿生成的文件呢,是文本文件,那所以说直接导进去的话呢,那它肯定是不能识别的,那所以在这儿咱可以怎么做呢?OK,在这儿我们可以先创建一个临时表,那这个临时表呢,就不采用劣势存储加压缩的格式了啊,那所以说我们这儿呢,就可以把这个文本文件漏到这张表当中,然后呢,再从这张临时表当中选择数据,把数据呢在insert到我们真正的诶这个时间维度表当中啊,咱这儿可以做一个这样的操作啊好,那现在我们就把这一步呢给它操作一下啊好,首先我们需要先创建一个临时表来,我们把它拿。
05:06
拿过来放在笔记当中。好,创建一个临时表,大家给它创建出来,诶直接回车,好大家来看一下啊呃,这个临时表的,呃,这个数据呢,存在哪个路径下了,存在warehouse j ma tmp下边了,对吧,那现在呢,我们就进到这个路径啊来CTRLC。呃,来打开我们的,呃,HDFS的外部页面,来进来,进来之后呢,在这儿咱是不是就可以直接上传这个数据文件呀,对吧?啊直接upload一下,那选择文件,那现在呢,我的文件在哪放着啊,我们去找一下。打开呃,完事之后呢,进到数据仓库啊,进到资料,那资料当中有一个date啊,这里边儿就是我们的日期维度表的数据文件,好双击啊,然后点击upload。好,就已经上传上来了,上传上来之后呢,我们去查看一下这个临时表当中有没有数据,双击查看一下啊,大家可以看到这里边已经有数据了,对吧?那现在我们就只剩下最后一步了,那就是往我们的真正的时间维度表当中来插入数据,那时间维度表先创建出来,那接下来呢,我们再执行一个insert加select语句,是不是就OK了呀,对吧?那我们现在去拿一下这个装载语句。
06:16
C,来,我们执行一下,好,In insidetright tableam data for,然后呢,Select星,From tmp date in啊,来回车。呃,这个语句执行完毕,那我们的日期维度表当中就应该有数据了啊,咱们去点开看一下,双击。啊,大家注意观察,那现在我们的日期维度表当中就已经存在这个日期的数据了啊好,那现在日期维度表它的数据装载我们就讲完了。
我来说两句