00:00
好,那接下来我们实际动手来玩一下啊,那我们创建这么一张表啊,那字段很简单,就这么几个字段,那呃是一个明细模型对吧,不做什么预聚合,那分区字段我们指定为派。这个字段类型呢是date,那这里呢,你看在分区的里面,括号里面啥也不用写啊,啥也不用写,因为我们是动态分区来管理的,呃,这个分筒啊,分不分都行啊,接下来就是重点了,就这几个,那我看看对应的几个参数,第一个动态分区开关设为出时间单位设为天,呃,起始偏移表示保留最近的七天的分区,是不是保留最近七天,再往后end会创建未来三天的分区,未来三天。那前缀呢,我们也随便玩一玩,前缀自动加个P啊呃,那自动的分筒数啊,可以是十对吧,你也可以设成其他的啊,不要跟这个一样好,副本数呢,自动创建分区,副本数我们就设为一啊。
01:11
啊,表的副本数为一,那动态分区是不是也可以设置自动创建分区的副本数啊?这两者可以不一样啊。那我们先创建呗。来粘过来,粘过来之后,我们可以通过下面这个命令,这个查看的是调度情况啊,分区调度情况。来受动态分区partition tables,我缩小一下,缩小缩啊缩太小了,咱们还是用杠G的方式来看吧。哎呀,太大了。好,斜杠大G啊,回车这样就舒服了吧?来,我们瞅一眼啊,动态分区表明,然后enable是开启的时间单位,对呃,起始偏移。
02:06
最近七天。未来分区自动创建三天前缀是P啊,统数是十,副本数一对吧,啊这些都有,这个是可以查看呃,一个情况,那具体呢,我们。先来查看一下表的分区情况,通过这个命令受partisans from,然后加上一个表明就可以了。来收一下。好看对吧,呃,咱们加一个斜杠大G来这边我们看一下啊,当前呢是三月31对吧?啊,当前时间是3月31号啊啊我的时间是这样,那看大家时间,你看自动创建的第一个分区名就是什么前缀是不是有了啊,然后呢,这是不是当天的分区啊。31号,那我们看它的一个润范围是什么,是不是31号到4月1号,这是不是一天呢?我们说的是左臂,你看这边左边是中括号,右边是小括号,左臂右开,这表示就是31号当天的分区好。
03:18
那么。再往后走。啊,你这其他信息咱们就不看了啊。再看第二个分区,它是什么呢?是叫前缀是P对吧?啊,0401,它是这种格式的啊,那再往下看。区间是什么?左闭右开啊,4月1号到4月2号就是4月1号当天了,再往下我们快速看,呃,0402就是二号当天了,好0403对吧,4月3号当天了,那其实我们再回想一下我们的配置啊,建表语句,我们现在明显能感觉到的几个东西是什么,是不是醋生效了。
04:05
啊,时间是天没毛病,往后偏移三天也没毛病,自动创建了三天对吧,前缀。也没毛病,能看到统数也能看到,副本数也能看到,唯独一个东西没看到什么东西啊。往前保留最近七天。这个就是我之前咱们讲的那个历史分区的事儿,就已经过去的那些时间点,如果现在分区不存在默认了啊,是不会帮我们自动创建的,但随着时间推移,它是不是也会保留前七天呢?是吧?什么意思呢?现在不是三月31嘛,那前面的分区一个都没有,那比如说我已经到了4月10号,那从这里经过了这么久,我是在这一天创建的表,那4月10号往前推七天,他是不是会保留到4月3号啊,到十号为止的分区啊,那个时候你就能看到保留的效果那。
05:04
这是因为没有自动创建历史分区对吧?那我们前面也介绍怎么去开启啊,对应设参数就行,但是我们在建表的时候没有指定啊,没有指定那个创建历史分区,所以不会创建啊,是这么一回事啊,那我们先来玩一下呗,呃,插几条数据玩一玩啊。那这个时间要改一下了,呃。那我这边就改成2203呃三幺对吧,然后因为时间变了嘛,要不然你插不进去。啊零四,呃零幺。这个改成220402。是吧,那这个时间才能被我们前面创建的这几个分区所包含吗?来我们试一下。
06:01
这样数据是不是就可以插入成功了,我们查一下这张表啊。看数据有没有问题,是不是都有啊,那我们再尝试着插入一条,什么时间不在这个范围内的,比如说0302。是不在这个动态分区的范围里啊,来插入它会什么报错啊,直接就报错了。那我们再改成,比如说改成5月2号未来的日期,好,同样报错能理解吧,啊好。接下来既然谈到历史分区啊。我们再看一下这个啊,再再回忆一下这个表分区。啊,不改格式了,是不是只有三月31 4月1号,4月2号4月3号啊,这是当天啊,往后创建三天往前历史分区没有,接下来我们不是说了吗?动态的分区参数,一个是建表时指定第二种方式是不是al table的方式啊。
07:09
对吧,运行时修改我们去set是不是就行了啊,我以这种方式给大家演示一下啊,来我们执行这条命令。啊,我们只需要把这个创建历史分区的参数打开制成处就行,那我们前面不是介绍了一堆东西吗?把它制成处对吧,我们现在是那这个数量我不管,默认就是负一对吧,其实不设置这个热分区我也不管了,你想玩你自己玩一下啊。那这个强行指定保留的啊,走后门的啊,我也不掩饰了,就这个大家自己去玩一玩就行了,好吧,所以我这边设置的只是一个什么呢?开启一个自动创建功能啊,那如果我设置七天是不是自动往前创建七天的分区啊,来我们试一下加个分号。
08:06
来吧。参数参数名没考全啊啊稍等一下,应该全称是这样啊全称。呃,我把事例也改一下啊啊,这个参数的全称改一下。好,我重新拷贝啊,那个参数名写错了啊,回车你看OK对吧?好,见证奇迹的时刻来了,我们直接受partitions再看一下回车,那大家可以看到之前是不是只有这么四个分区啊。是不是这是基准对吧,往后创建最新的三天啊,未来三天,那往前保留七天啊,之前不存在就不会自动创建,那现在你看看。
09:06
啊,它为基准,那你看往前有几个。31减七是不是往前建到24号开始啊,你看这边是不是有七天了。对吧。自动创建历史分区,这个时候我们尝试着去插一下插入数据,呃,三月24这个时候你插入这个数据就成功了,因为分区存在才可以插入嘛,对吧?好,这个是给大家演示的这个。历史分区情况。另外我们讲讲动态分区能,它是可以跟手动分区表相互转换的,那么对于一张表来讲,要么你是动态分区,要么是手动分区,但是两者不能怎么样,不能同时存在,那怎么转换呢?第一个手动的转为动态,这个只要什么样。
10:03
这个我们前面讲的是不是通过al table这种语法去改就行了,就跟我改这个历史分区的效果一样,用这种语法去指定就行,参数呢,这边就替换成动态分区,几个参数分别去设置就可以了。那如果有多个参数,是不是逗号隔开就可以了,好,这个咱们就不去演示了,那如果是动态分区改成手动分区呢?一样的道理啊,一模一样的语法也是out table,然后set,然后我我们只需要把这个动态分区开关改成什么false,那一切就都关掉了啊。好了,这是动态分区,咱们的一个演示。
我来说两句