00:00
好的,那接下来呢,我们继续进入具体优化方案的一个介绍啊,好,那么有的东西呢,是大家相对来说比较熟悉的,那我们只是说在文档当中给它列出来了,有的东西并不需要去演示,大家已经很清楚了啊,就给大家总结一个比较全的文档啊。那么第一个是have建表方面的优化,那么建表方面的优化呢,主要分为这么四个类,第一个建分区表,第二个创建分同表,第三个创使用合适的文件格式,第四个使用格式的压缩格式。那么这四个内容呢,在我们之前课程当中都是有介绍的,那在B站上呢,也同样能够找到我所讲的have。整个的课程啊,那也就是说同时那个help佛的课程也是用了3.1.2这个版本的,那大家可以去了解一下,呃,那第一个呢,是分区表在help当中的分区及为分目录,也就是说每一个分区在HDF上对应的一个独立的文件夹,那么接下来如果说我们指定了will语句,Will语句当中呢,同时包含了分区字段的过滤条件,那么接下来我们这个circle将不会执行全表扫描,而只会读取我们指定的分区啊,那也就是说我们可以将一个大的数据集表变成很多很多的小表,之后查询的时候呢,可以提高我们的效率,当然有前提,前提条件就是我们必须得在查询语句的well词句当中添加上我们的分区字段。好,那接下来我们可以看一下我们分区的具体操作。其实。
01:47
就使用的我们这样的一行句,在我们之前正常的创建have当中表格的同时加上一句话叫partition的拜。
02:00
啊,创建一张数据表的同时加上一个part,然后指明我们的分区字段即可。要注意的是这个分区字段不能是我们表当中的任何一个字段啊,这个一定要注意一下,同时之后呢,我们可以将数据。放到我们分区当中,那这个时候呢,正常加载数据叫low data localas,指定到table即可。对不对,但是如果是一张分区表,我们需要将分区这表呢,指定到我们的分区内部啊,后面要加一个partition。带上我们的分区字段。啊,必须要指定分区,这是之后呢,我们可以查询表当中的分区信息啊,单个的多个的查询增加分区数。以及同时增加多个分区,这块一定要注意一下,注意什么内容呢?那么我们看这边可以同时添加多个分区,也可以同时删除多个分区,那么有一点不一样。
03:03
不一样的东西在于什么呢?首先添加为I的,删除为drop,这个没有什么疑问啊,那么接下来是我们看到在添加多个分区的内容,这边注意空格就好,不需要其他的什么特殊的分隔符,那如果说我们要同时删除多个分区,注意中间用逗号分割。用逗号分割啊,好,这个是一个注意点啊,那之后呢,是我们看到的查看有多少个分区,查看分区的结构信息都可以啊,都可以类似这样子的,好,那这边有一个思考,如果那正常来说,在生长环境当中,我们更多的是按天来做分区。啊,也就是说一天一个分区这样来保存的,但是有一个问题,如果一天的数据数据量也很大,那我们数据还能再拆分吗?啊,答案是肯定的,我们可以做一个二级分区,在这个过程当中呢,我们可以帕半写当前两个字段,也就是说在一天内我们再按照小时做分区,完全没有问题。
04:14
完全是没有问题的啊,这是我们第二二级分区,那么第三块我们讲的是动态分区,刚才我们往这个表当中插入数据的时候呢,都要指明当前你要去往的这一个分区到底是谁。那假如说我们现在数据呢,是来自于另外一张表,这张表里边有很多天的数据,同时每天的数据又有很多个小时,24个小时都有这个数据,那么此时我们希望将我们这张A表当中数据导入到这个分区表里边,按天按小时区分开,那应该怎么做呢?这个时候就要应用我们的叫动态分区啊,动态分区首先设置开启动态分区。
05:03
啊,设置开启动态分区的一个功能,那么接下来呢,设置非严格模式,默认为严格模式,注意严格模式下要求我们在写入分区表数据的时候必须指定至少一个分区。啊,指定一个,那其实我们现在要动态分区,就不想在写搜索语句的时候把这个分区写死对不对,我们希望用数据里边的内容来做分区条件,那所以呢,我们要设置为非严格状态。然后同时执行的MR节点上最大的动态分区的个数1000,默认1000呢也已经够了,除非你自己感觉到这个未来分区的数量呢非常庞大,你可以修改一下这个值啊,更重要是最后我们那个操作在这块呢,如果说我们按照这个内容进行一个分区,以前往这里面插入的时候呢,我们需要写上LC等于具体的某一个值,但现在由于我们采用的是动态分区方案,那么将不需要把这一块的写词,那之后呢,在我们正常查询语句的基础上加一个列。
06:11
即可。这个列将来会被运用到我们的。分区字段这个列将来有多少种可能性,那么最后我们分区就有多少个啊,这个一定要注意一下,好,这是我们所看到的一个分区表啊,那大家呢,用have已经比较多了,所以分区表的东西对大家说呢,应该。不是特别困难,OK。
我来说两句