生产中Hive静态和动态分区表,该怎样抉择呢?

Posted 若泽大数据

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生产中Hive静态和动态分区表,该怎样抉择呢?相关的知识,希望对你有一定的参考价值。

一.需求

按照不同部门作为分区,导数据到目标表

二.使用静态分区表来完成

1.创建静态分区表:

create table emp_static_partition(

empno int, 

ename string, 

job string, 

mgr int, 

hiredate string, 

sal double, 

comm double)

PARTITIONED BY(deptno int)

row format delimited fields terminated by '\t';


2.插入数据:

hive>insert into table emp_static_partition partition(deptno=10)

     select empno , ename , job , mgr , hiredate , sal , comm from emp where deptno=10;


3.查询数据:

hive>select * from emp_static_partition;


单击,放大图片查看

三.使用动态分区表来完成

1.创建动态分区表:

create table emp_dynamic_partition( empno int, ename string, job string, mgr int, hiredate string, sal double, comm double) PARTITIONED BY(deptno int)row format delimited fields terminated by '\t';

【注意】动态分区表与静态分区表的创建,在语法上是没有任何区别的

2.插入数据:

hive>insert into table emp_dynamic_partition partition(deptno)     
select empno , ename , job , mgr , hiredate , sal , comm, deptno from emp;

【注意】分区的字段名称,写在最后,有几个就写几个 与静态分区相比,不需要where

需要设置属性的值:

hive>set hive.exec.dynamic.partition.mode=nonstrict;

假如不设置,报错如下:

生产中Hive静态和动态分区表,该怎样抉择呢?

单击,放大图片查看

3.查询数据:

hive>select * from emp_dynamic_partition;

生产中Hive静态和动态分区表,该怎样抉择呢?

单击,放大图片查看

分区列为deptno,实现了动态分区

四.总结

在生产上我们更倾向是选择动态分区

无需手工指定数据导入的具体分区, 

而是由select的字段(字段写在最后,有几个写几个)自行决定导出到哪一个分区中, 并自动创建相应的分区,使用上更加方便快捷 ,在生产工作中用的非常多多。


本文来自,若泽大数据课程顾问-呼呼,原创博客:

https://blog.csdn.net/lemonzhaotao



打个小小的广告哟生产中Hive静态和动态分区表,该怎样抉择呢?生产中Hive静态和动态分区表,该怎样抉择呢?生产中Hive静态和动态分区表,该怎样抉择呢?

1.若泽数据 官网:  

www.ruozedata.com     

微信不支持链接跳转,单击下方[阅读全文]

2.面试题/博客汇总: 

 https://github.com/ruozedata/BigData

 微信不支持内链接跳转,浏览器拼写一下


每周3篇大数据相关原创文章,联系客服领取,

若泽2017+2018年所有腾讯课堂公开课视频,尚未外泄,独此1家

生产中Hive静态和动态分区表,该怎样抉择呢?

4.


5.若泽大数据--星星: ruoze_star ,加我邀请进群


单击下方【阅读全文】,进入官网!


以上是关于生产中Hive静态和动态分区表,该怎样抉择呢?的主要内容,如果未能解决你的问题,请参考以下文章

Hive表的动态分区和静态分区

什么是hive的静态分区和动态分区,hive动态分区详解

Hive静态分区和动态分区

Hive动态分区与静态分区,数据插入,区别

hive中怎样删除分区

Hive的静态分区和动态分区