00:01
好,接下来是这个动态分区。分区表我们知道,那这个地方出现了一个动态分区。那这个是什什么意思呢?也就是说这块突然出现动态分区,相对来说我们之前所写的那种分区表,往分区表里面导入数据,那个呢是叫静态分区。好,那这两个是什么区别呢?是这样的,那我问大家我们之前所写的往分区表里面插入数据。在这个数据。被任务读到之前,这个数据进到哪个分区,你知道吗?你知不知道?是你自己对你是不是知道的,对吧,但是在生长环境当中会有一样。我那个dpg表是不是有ID10203040都能理解,错错。对吧,啊,有四个部门,现在呢,假如说我里面四个部门呢,人很多,因为我现在只只有只有十二十三级,假如有个ID对吧,就是这个现在呢,我不是说一天把这十个把这四个部门啊。
01:08
之前我们写的静态分区是不是说什么貌似等于什么什么2019杠零六啊,杠零七杠零八这样的方式,对吧,插入数据的时候,我们就知道将来这个数据进到哪,现在呢,我不希望这样,我想干什么呢?你这里边没有十号20号,30号40毫吗?我想你将来的分期字段,拿我这个ID作为分期字段,也就十号一个文件夹,11号一个文件夹。啊,不是20号一个文件夹,30号一个文件夹,40号一个文件夹,那么这个时候你说这个数据在读录之前,这条数据进到哪个分区,你知道吗。因为它是根据实际数据的一个内容来的,对不对。没问题吧,啊,它是根据实际数据的内容来的,所以呢,此时它进到哪个分区呢,我们根本不知道,那这个时候呢,就要用到动态分区。就要用动态分区啊,动态分区呢,就是这个意思,之前我们从A表可以往B表导数据,假如说A表呢,是我们每天的日志啊都覆盖,一直往A表里覆盖,然后呢,我们要往B表的某一个分区里面去导,按照天去导的,每天呢,Month等于什么什么对啊。
02:18
啊,等于什么2019杠零七杠零八是不是这样来写的,但是现在不好意思,我不是说按照这个时间来的。不是按照时间来的,我希望按照表里干什么?某一个具体的字段来。你这个字段呢,有五种,那我将来分五个区,有六种,我分什么六个区啊,所以呢,这个叫动态分区啊,叫动态分区OK,那动态分区呢,它有几个前提条件啊,第一个。要开启动态分区的一个。功能啊,开起来个功能,诶,我少写了一个对吧。
03:02
走默认是动态分区是开启的,那接下来还有一个就是要用什么呢,这样。打开分动态分区这边的一个模式啊,把它置在非严格模式下啊,非严格模式下,因为在严它默认的是严格模式,我们来看一下严格模式指的什么意思呢?就是你在插入数据的时候,必须要指定一个分区。一样的模式啊,动态分区的一个模式,对吧,它必须要指定一个分区,也就是说像我们之前所写的那样啊,貌似等于什么2019杠零七杠零六啊,你要加一个经个内容。那首先这块呢,我们把它打开啊,就是放在非严格模式下啊,非严格模式下哎,少了一个方号啊,我们每次总是少写什么对吧?啊设置一下一下。好,那同样的还有一个。它默认的有一个值,就是你将来动态分区有一个值范围默认的呢是100。
04:06
就最大可创建的动态分区,那也就什么意思呢?如果你生产环境当中,你预估一下,假如说你要按照某一个字段的ID,对吧,部门编号进行一个分区,把不同的部门放在不同的文件夹里边去管理啊,因为这样不同的人就放到了不同的文件夹,你要查看某一个部门的人是不是可以提前在用这个分区字段进行过滤啊,啊用这种方式行过滤,因为这样就可以避免全秒扫描啊,避免觉得怎么样好,我要按照ID,假如说ID这个呢,有500种。有500种。那将来。动态分区的时候,它会分多少个区啊?它会分500个区啊,都会会会分,因为它是按照你一个AB进到一个区,一个AB进哪个区是这样来分的,是这样分的,就500个,它默认值呢是100,如果说你默认值不给,而你的分区个数将来是500的话,它就会干什么。
05:01
我错了,因为最大值呢,它是,诶默认值1000啊,那默认最大值是1000啊,就最大值是1000啊,1000,如果说你超过1000的话,哎,这边写的1000是吧,默认值是1000,如果说你超过最大的这个1000的话,它有问题啊,它有问题,然后还有一个100是那个每一个节点。每个节点这个是总的分区啊,总的分区每一个节点,因为我们最终的任务是要发送的不同的节点去执行的啊,每个节点上面呢,是默认的是100个啊,你可以把它变大一点,尽量的这个值呢,你可以把它设置成相等的。因为很有可能,因为我们的任务质量好。他怎么发到不同的节点去运行呢?根据数据量来的,对吧,正好你这个假如说128兆,这128兆里面。很不巧,你这里面呢,有500条数据,我500个数据ID都不一样。
06:01
能听明白这个问题吗?那你是不是这一个节点就要出来500个吧?取,你想想你的卖多少?对吧,你当前这一个map任务当中。就包含了所有的T。所有种的K。对吧,那你当前这个ma任务,假如说从黄金网去写出来的那个内容是不是。500种就会有500个小音啊。对吧,500个小件,而这一块呢,仅仅动态分区,从第一张表到另外一张表里面去导数据的,导数据用的,所以呢,它更多的时候需要什么reduce过程吗?不需要,也就从脉络节点出来就要写出去,所以呢,这个值你也尽量的要比我们所说的那个什么,你AB刚才我们所说的不是500个嘛,你尽量的比这500个也要干什么也要大。也要大啊,这个档是默认的是100,我们可以看一下这个值啊。在的,刚才呢,那个是max全局的啊,全局的这个是每个节点最大的啊,每个节点最大的啊,尽量生产线当中呢,我们可以把它们俩干什么。
07:07
设置的一样大,且干什么事要大于。你数据里边要按某个字段分区的那个种类数能听懂啊,是这意思啊,那继续继续,呃,这块呢,还有一个点就是这个。空分区的时候啊,空分区的时候是否抛出异常,是否抛异常,那空分区就空分区,也就是说这个字段,假如说我写了一个ID字段,字段呢,都为空没有啊就这意思啊,一般的就不设置了,这个就不管了啊,就不管了。好,然后呢,这个是我们前置条件,我们都已经设置好了,接下来我们要用一下啊,接下来我们用一下,因为这里面呢,涉及到的东西比较多,这款东西呢,我们希望带着大家去写一下,这个里面呢,我们是不是有一个这个表C加的心。De pd,就按照我们刚才所说的,我现在就想按什么。这个内容大家进行分区啊,这个内容大家进行分区,好,那我们要把它重新建张表啊,因为我们是要把这个数据要导到另外一个分区表里,对吧,而且呢,按照这个字段里面去。
08:13
按照这个字段的一分去,好,那我们写一下,首先呢,它是这三个字段。那你说现在这张表应该怎么创建,这个时候呢,我就不从那个里边去拿数据了。不同文档当中进到了啊啊这个字段放在这。我看一下是天莫斯,我记得有一个什么那个。DPS。是不是有个d part,那我们用Switch可以吧,用Switch,因为已经我记得应该有两个了,那首先呢,我们是不是应该创建一张表了叫。Table。Table,然后叫DT。下划线帕地对吧,啊,我再判吧,这画OK了啊,就不写那个那么长爬地好,然后括。
09:03
这个地方应该怎么写,想一下。我们要把它变成分区字段了。我们之前提过分区字段是不是也是这张表格字段啊,对吧,那他写的分区字段,他最后是不是应该写的partition by什么东西。对吧,那这个东西还有必要写在这个里面吗?没有必要了吧,因为我们说了分期字段也是这张表什么字段完全可以当这张表的字段用的,也就是说这个里边呢,可以直接写个d name,然后叫什么。四边类型。哎。STRG,好,第二个还有一个LCLC,应该是一个A,是一个硬的类型是吧。好硬的类型,那我们来一个硬的。哪个的好,接下来呢,好T。的饭对吧,哎,它是成的饭,然后带什么。
10:01
一个括号叫d BT number啊这个东西呢,是一个。四命类型吗?应该是一个int吧,我看一下啊。C。Table de BT,我们看这张表的建表语句就能知道,对吧?INT2个int吧,啊前面in,那我们这个呢,还用int OK吧,尽量的保持一致吗?还in,那接下来写。啊,如。对吧。还是跟之前一样,钢铁啊,还是以钢铁分割OK了啊,我们把这张表呢来建立一下。啊,这一下好,那我们来往这张表里边导数据了,之前假如说我们往这张表,这张表呢,假设啊,跟原来的字段是完全一样的,怎么导。叫色into或者说over都可以吧,Into table。
11:00
DPD。对吧,没问题吧,好,然后。我直接写新行不行?对吧,啊,为了安全起见,这样。首先第一个这是一个分区表,还记得怎么往分区表里边导数据吗?Well。后面不是跟着一个partition。括号吗?还记得你们之前不是这样写的,Mo等于什么内容吗?对吧,现在呢,是动态分区,我能写这个,当然它这个不能写month了,要写他的吧,我能这样写吗?说等于一。那不行了吗?这不又静态分区了嘛,对吧,你先死了,也就是说这个地方呢,直接放一个什么这个名称。直接放一个这个名号好,那接下来按道理来说,这块我们正常的是不是想的C这个是因为三斯带一样嘛,那为了安全起见一点,你看啊,这个时候以前这个dpd number是不是在第一位啊,现在作为分支中呢,它是不是变成最后一位啊,那为了安全起见,我是不是应该把它写全一点更好一点啊,还是写什么第1NAME逗号,然后LC,然后逗号谁。
12:19
第一批。诶。D number对吧,然后from这个什么de PT表。D表,我们先安全起见一点,等会我们测一下,因为我们发现这两个东西是不是名字一样。名字一样,那我能不能用心来代替它,是不是跟自己名字找呢?对吧,因为我们感觉这个位置现在是不是位置和名字都一样,那如果说这种都不行的话,那你你说C新肯定也不行了吧,对吧,我们先看这种O不OK啊C给他拿来。早。这个我们说了,它是不是已经不会有什么。
13:02
操作对吧。其实你看这你都能看出来了。叫loading d pd等于十四十三十二十。对吧,OK,那我们看一下。右坐标house应该有一个顺go第1PTP对吧点。动态分区,看见没?对吧?啊,这个就是我们所说的动态分区,就是我们在插入这条数据的时候,你告诉我这个数据。插到哪个分区你知道吗,现在。你不知道吧,是不是你在读数据的过程当中才会知道啊,你必须要去读,因为它是根据当前这个数据具体的字段来的啊,这是我们东南区,好,那接下来我们测一下刚才我们所说的一个点,这个地方的名字一样。
14:04
对吧,名字一样,那我们做一个操作,就是现在的心能不能插入进去。对吧,啊,那来开了。开了。第1BD_AR对吧。走好,这个时候呢,这块应该就,哎,它是它这个原这个里面就没有了什么数据了,嗯,那为了这样我们把它的一个什么。分区也给他删了吧,可以吧啊,这样我们看的效果更好一点,删分区怎么删还记得吗?原数据没删对吧,直接删是不是原数据不会删,那我在这删是不是两个都会删,怎么删,还记得吗?语法。Table这个什么第PD,然后呢叫drop。
15:01
括号。诶。前面是不是有一个table键,我感觉。呃,那个叫dept number对吧,而且删除多个分区,中间用逗号,还有印象吧,啊这个东西呢,写。把它写一下对吧,20逗号,然后呢,这个地方改成30对吧,逗号,然后改成一个什么40啊一块给它删一下啊都删掉了,然后我们再刷新就没了吧,啊把这个搞定一下好,那这块呢,我们改一下这个地方改成什么新,我们来试一下,哎,看它动底是如果心不行,说明它真的是按什么。按照位置来匹配的吧,啊也就是说分区字段呢,你要写的什么。最后面啊,或者说这样我也不写C星啊,我写一个第1P地址吧。De number,然后d name,我这样写更靠谱一点是吧?如果说这个不行,那肯定是什么。
16:05
不行了,对吧,啊走。看他能不能行。啊,看他能不能写,哎,这个任务走起来了,猜一下结果。猜一下结果OK。来看这。说明什么问题啊,一定是按照位置来的,因为这个LC是什么。De PT。是LC吧,那你看我现在是不是把LC写在最后面,也就是说如果你要启用动态分区的话,你以后知道怎么写了分区,你要用的这个分区素态是不是名字无所谓,因为你看我的第一批number,你像LC。根据什么来的位置就是最后一个位置,就是我们分区的内容。
17:02
能听懂。没问题吧,最后一个位置就是我分区的,你分区的磁弹没问题吧,这个能测试出来,看出来是这个小伙伴啊,它是根据位置来的,跟你名字没关系吧,因为此时我叫LC,你叫第一平number,哎,对同样的它好像插入进去,而且呢,这个分区一七对吧,你注意这个地方有同学说那你这个地方怎么没有改成ROOC啊,就是这个是它分区那个名字啊啊分区名字这个是你分区具体的哪个区的值。啊,哪个区的值,也就是说动态分区它是按照什么位置来的,按照位置来的,你必须把它放在什么最后一个位置啊,最后一个位置是这意思啊,注意一下。是什么意思,哪张表?这张表就是这边再加一个什么。
18:02
你的意思是这样?对吗?那不好意思,你这块就要加一个什么。D pd number。作为分区字段啊,因为你此时看啊,你现在接表的时候三个字段,然后加上分区字段是四个字段啊,你导数据的时候也要导四个呀。能听懂吗?分区字段,这就是两个字段了,只不过你恰好这两个东西你用同一个另外一张表同一个字段来表示的,它是代表了两个字段啊。能听懂吗?是这意思啊,是这意思,这块要注意一下啊。
我来说两句