00:00
呃,好了,各位同学,那咱接下来呢,看一下我们的第四张维度表,叫做地区维度表,呃,那首先呢,我们需要诶明确的一点就是啥呢?哎,它可以跟哪些这个业务过程相关,哎,哪些会跟这个地区有关呀,其实跟地区相关的就比较多了啊,比如说我们的下单,你在下单的时候是不是肯定是跟地区有关的呀,对吧?OK,那实际上咱们都知道,其实我真正的进行加构的时候,跟地区是不是可能也是有关系的呀,对不对,但是呢,在咱这个业务系统当中,我们自己模拟生成的,并没有去构建这层关系啊,所以在这儿呢,我们那个架构跟地区关联不上啊,这个大家理解一下就行了,当然可能还有一些其他的,比如说什么支付支付啊等等等等,那些我们就不再一一列举了,到时候我们讲实施表的时候,咱们再详细的去说啊,好了,那这就是地区维度,呃个相关的一些这个业务过程啊好,那接下来咱们继续往下进行,下边呢,咱们就还是老规矩啊,去设计表的结构,去写它的状态语句,那来琢磨琢磨这张表的表结构咱们怎么设计。对吧,现在大家应该拿到一张新的维度之后,你是不是应该知道我这个大体的设计思路了呀,对吧?哎,咱们自己脑海里过一遍,你说我下边该干啥了,确定主位表相关为表呗,对吧,那咱们就去找对吧,去业务系统里边找到与地区相关的主位表,相关表,那这个都有谁呀?
01:12
大致都过一下,应该差不多也能找到,对吧,是不是?就是这两张,一个是province,一个是region,对吧?那province这张表的结构大家应该比较熟悉吧,这个应该很简单,我就是我不说大家应该也能想明白它每行是什么,它的字段都有啥,对吧?来,我们现在明确一下啊,首先这个贝province这张表,那它每行所指来的是什么呢?就是一个省对不对?OK,那列都有啥呢?简单看一看啊,首先这儿呢,有一个name是不是就是省的名称,那后边呢,有一个region ID指的是什么?是这个省所属的地区,对吧?然后再往后走,这是什么呢?这是我们这个三个编码吧,没问题吧,OK,好,那完之后这仨编码是干什么的,大家可能就不太清楚了啊,我给大家简单的解释一下啊,那首先那第一个。艾瑞尔code,这个艾瑞尔code呢,实际上是一个我们国内通用的六位的地区编码啊,是这样的,你像他这么写的话,就是前两位有值,后边是不是全是零啊,对吧?那这样它是怎么,它表示的是什么呢?哎,就是能够唯一代表一个省份,是这样的啊,那如果后边这块也有值呢?这代表的是什么呀?相当于应该就是省下边的是不是是啊,对吧?哎,是这样的,那这个大家理解一下就行了,也就是我现在只有前两位有数,那后边也是零,那这个其实我们是能够唯一的代表一个省份的,这一点大家搞清楚,OK,那这个诶是国内通用的一个地区编码啊好,那接来往后走,后边是不是还有两个什么ISO的这个编码啊,对吧?ISO这个机构大家应该听说过吧,这是国际标准化组织,对吧?啊是这样的啊,就是他们是他会给什么呀,是不是给我们国际上的各行各业去制定一些既定的标准呀,对吧?啊是这样的,那比如说那这个咱们这儿的这两个所谓的编码,就是由ISO这个国际标准化组织。
02:55
制定的关于每个国家的一个省级行政区的,呃,这样的一个地区编码啊,实际上是这样的一个规则啊,这个大家搞搞清楚啊,是什么呢?是省级啊,是省级的也是在这儿呢,我们这两个编码都是省级的啊,其实这两个编码呢,呃,他们都有一个,就是实际上那个国际化标准化组织,它是呃会制定很多的标准啊,对吧,每个标准它会有一个编号的啊,你像咱们这这两个编码所对应的编号是什么呢?
03:23
实际上都叫3166杠二,都是316杠二,这个3166杠二这个,呃,这个编号指南的就是啥呢?就是我们刚刚提到的那个,每个国家的省级的一个,呃,行政区的一个编码是这样的啊OK,那完了之后为什么这两个都叫3166杠二呢?这个需要给大家解释一下,实际上这个呢,是不同的版本啊,是这样,它是有新版和旧版的,一个是新版,一个是旧版啊是这样的啊,然后大家简单看一下这个新版跟旧版的区别是什么啊,那实际上在这儿呢,这个旧版是不是CN11啊对吧?呃,然后呢,什么CN12,这是用数字去表示一个省对吧?那完了之后我们这个新版的3166杠二呢,它指的是什么呢?是用是不是这个首字母去表示一个省份啊,对吧?哎,它是有点区别的啊,是这样的啊,那咱们也不用管这个新版和旧版,那到底是怎么一回事,不用管,那咱们现在只需要知道啥就行了呢,这里边的每一个这个编码是能够代表我们的一个省份的啊,一个编码代表一个省份,CN12能代表天津。CN这个天。
04:24
天津它也能代表天津,这个大家稍微的注意一下就行了,哎,是这样的啊啊完了之后呢,现在大家应该已经知道了,就是说哎,我们这儿呢,呃,这三个东西到底是啥了,这是一个国内通用的地区编码,那后边两个呢,相当于是两个是不是国际上通用的地区编码啊,对吧?啊,那我们这儿为什么要放这么多的编码呢?这个编码将来能有什么用呢?这个是大家需要去考虑的一个问题,大家想想,你说这个东西有啥用啊,将来。这玩有啥用啊,其实主要是给将来咱们的这个可视化去用的啊,是际上就大家都知道将来我们会做各种各样的统计指标,对吧?那完了之后呢,其中就会包括一些什么呢?诶,就是以这个省份诶,或者是以地区作为统计对象的指标,什么意思呢?比如说举例子啊,将来我可能会统计一下各个省份的订单总额对吧?各个省份的总订单数等等,我们可能会统计一些类似的与这个诶省份相关的统计指标,好,那这些指标你做完之后,是不是将来需要去做可视化的展示啊,对吧?那大家想一想,你说我要展示与这个省份相关的统计指标,我用什么样的图形去展示是比较合适的呢?
05:32
啊对,用地图展示比较合适对吧?就好比咱们当前的一些这个疫情统计图对不对,那是不是就是会有一个地图完了之后呢,里边的这个是不是用每个省份的颜色的深浅去表示这个数值的高低啊,对吧?是这样的,那咱们这儿将来去做类似的这个指标的展示的时候呢,也可以用地图,对吧?诶那你想一想,你要想用地图做展示,那你应该给咱们这个可视化工具什么数据呢?你得怎么给的数据,他才能用地图给你展示啊,你得告诉他我每个省数值是多少,每个省数值是多少,是不是得告诉他这些信息啊对吧?告诉他之后,他才能用地图给你展示嘛,对吧?好,那关键是你告诉他每个省的时候,你这个省用什么标识,我总不能说,诶我直接给他中文啊,这个大概率它是不能识别的,对吧?OK,那当然不排除一些国内的可能支持啊,但是国际上通用的应该大概率是不会去支持咱们的这个,呃,用中文去表示,呃,这样的一个省份的是这样的,那通常咱们需要用什么去表示的,是不是用编码去表。
06:33
市或者是标识一个省份啊,对吧,OKOK,那是这样的,那所以这些这个所谓的编码,其实主要就是给我们将来的这个可视化去使用的,这一点大家稍微的理解一下就行了啊好了,呃,那现在呢,这张表的表结构大家应该就比较熟悉了啊,先了解一些,然后后边我们用到的时候再详细的说啊好,那接着往下走,下边我们再来看一下另外一张与地区相关的表,就是region,这张表比较简单,我就不再解释了,好了,那这其实就是与地区相关的这样的两个为两个表对吧,一个是主位表,一个相关表,那谁是主位表,对,对于这个来说显示省吧,对不对,一个区下面是不是有多个省对吧?所以省的力度肯定是比较小的啊,所以在这呢,省份是咱们的这个,呃,主位表好了,那现在主位表相关表确定下来了,那接下来呢,你可以干啥呢?是不是可以去设计一下咱们这个表的表结构了,对吧?那这个地区维度表示表结构,那每行指来的肯定是一个什么省份嘛,这个没得说对吧?那字段应该有啥呢?是不是主要就是来自于这两张表,有省的信息,有地区的信息,是不是就完事了,对吧,比较简单,所以接下来。
07:33
那咱们就直接把这两把建本语句拿出来,咱们一起过一下啊,这个其实是非常非常简单的,来拿过来,肯志威我们放在这儿啊,来各位同学,那现在咱们一起来看一下这张表的相关的这个内容,首先先看表名,表名呢以这个dim开头,对吧,完了之后边呢,是不是province,然后后边是负啊对吧,这个没什么可说的,来继续往下进行,那下面呢,就是这张表的具体的表结构了,每行它就是一个省份,这个ID就是省的ID,然后字段呢,可以简单看一看,这些字段是不是就是来自于刚刚的那个省份表了,对吧?那这个字段就是来自于这个地区表,其实没什么特殊的,比较简单,行了,那这张表的表结构基本上就OK了啊,现在行列就完事了,最后再说一下分区,实际上这张表呢,咱们这儿也是按照什么分区呢,也是按照。
08:18
地区分呃,也是按照日期分区的,咱们仍然是一天一个对吧,一天一个每天的这个,呃,分区当中呢,我存放的就是截至当天的全部的省份信息,对不对啊,是这样的,这就是咱们这张表表结构啊,那当我说到这张表的这个分区规划的时候,不知道有没有同学有会有疑问啊,诶这里边大家可能会想一个问题,什么问题呢?我这个省份的信息是不是在很大的概率上都不会发生变化呀,是个道理吧,诶我很大的概率,我在很长的一段时间内他可能都不会变化,诶那你说我这个还有必要去做这个所谓的每日全量快照吗?我有必要每天保存一份全量数据吗?其实理论上来说呢,这个其实你不保存也没事儿,对吧,因为确实这个地区信息相对比较稳定,它很大,这个很长的一段时间之内可能都不会发生变化,所以说有些企业,有的公司呢,对于这种不太会发生变化的数据呢,它就不会去每天保存一份全量,而是怎么办呢?
09:16
就只保存一份这个表呢,我也不给他做分区表了,就是一个表,然后里边呢,就存一份地区信息,那就完事了啊,是这样的啊,也就说对于这样的表呢,以后大家如果见到诶,他只存一份,不做每日全量,那其实也是正常的,也没啥事儿啊,这个大家稍微的理解一下就行了,那在这儿呢,我们并没有那么去做啊,我们仍然是给他做了一个每日全量,其实这个做每日全量也没有太多的代价,对吧,本身这张表的数据量也不会太大,对吧?诶这个理解还行了,好了,各位同学,那截止到现在呢,这张表的表结构咱们就算是说完了,最后呢,我们再来明确一下它的这个。呃,就是数据的装载,那既然咱们这儿做的是每日全量快照表,那所以说我们在给他装载的时候,那仍然是得怎么做呀,是不是每天都得给它装载啊,对不对?那如果说在这儿你没有做每日全量,你就保存一份,那其实就装载一次就完事了,哎,这个要稍微得注意一下啊,好了,那我们每日装载的逻辑应该是什么样的呢?其实就比较简单了,其实在这里边我们是不是只需要将这两张表当天的这个分区的数据做一个简单的join,是不是就完事了,对不对,其实比较简单啊,好,那所以说这个三我们也不再手写了,我们直接把它最终的这个结果拿出来,咱们看一下就行啊,来拿过来放在这个位置啊,OK,那这就是咱们这张表的最终的装载语句,简单看一看,首先先看子查询,这个是来自于哪张表呢?省份那张表对吧?哎,拿的是他的14号分区,这个没什么可说的,接着往下走,那这个呢,是来自于地区表,拿的是不是也是他十四二分区啊对吧?那他俩呢,做一个简单的left对吧?然后呢,就拿我们需要的每个字段就完事了,最终再把数据写到这个地区。
10:50
纬度表的十四二分区,诶那就搞定了对不对,这个其实没什么难度啊,特别简单,好完成之后视频我停一下啊。
我来说两句