一、静态分区
1、创建分区表

 hive (default)> create table order_mulit_partition(
               > order_number string,
               > event_time string
               > )
               > PARTITIONED BY(event_month string, step string)
               > row format delimited fields terminated by '\t';

2、加载数据到分区表

 load data local inpath ');

order_created.txt内容如下

  order_number           event_time
   -- ::
   -- ::
   -- ::
   -- ::
   -- ::

3、这种手动指定分区加载数据,就是常说的静态分区的使用。但是在日常工作中用的比较多的是动态分区。

二、动态分区
需求:按照不同部门作为分区导数据到目标表
以上需求如果用静态分区的话,数据量大你是不是很懵逼??所以这个需求一般采用动态分区来实现。
1、创建目标表

 hive (default)> 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 (default)> set hive.exec.dynamic.partition.mode=nonstrict

开始加载

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

上面加载数据方式并没有指定具体的分区,只是指出了分区字段。在select最后一个字段必须跟你的分区字段,这样就会自行根据deptno的value来分区。

3、验证一下
有值

 hive (default)> select * from emp_dynamic_partition;
 OK
 emp_dynamic_partition.empno     emp_dynamic_partition.ename     emp_dynamic_partition.job       emp_dynamic_partition.mgr       emp_dynamic_partition.hiredate     emp_dynamic_partition.sal       emp_dynamic_partition.comm      emp_dynamic_partition.deptno
     CLARK   MANAGER     --
     KING    PRESIDENT       NULL    --
     MILLER  CLERK       --
     SMITH   CLERK       --
     JONES   MANAGER     --
     SCOTT   ANALYST     --
     ADAMS   CLERK       --
     FORD    ANALYST     --
     ALLEN   SALESMAN            --
     WARD    SALESMAN            --
     MARTIN  SALESMAN            --
     BLAKE   MANAGER     --
     TURNER  SALESMAN            --
     JAMES   CLERK       --
     HIVE    PROGRAM     --       10300.0 NULL    NULL

有分区(自动分区)

 hive (default)> show partitions emp_dynamic_partition;
 OK
 partition
 deptno=
 deptno=
 deptno=
 deptno=__HIVE_DEFAULT_PARTITION__
 Time taken:  row(s)

4、emp表的具体你内容如下

 hive (default)> select * from emp;
 OK
 emp.empno       emp.ename       emp.job emp.mgr emp.hiredate    emp.sal emp.comm        emp.deptno
     SMITH   CLERK       --
     ALLEN   SALESMAN            --
     WARD    SALESMAN            --
     JONES   MANAGER     --
     MARTIN  SALESMAN            --
     BLAKE   MANAGER     --
     CLARK   MANAGER     --
     SCOTT   ANALYST     --
     KING    PRESIDENT       NULL    --
     TURNER  SALESMAN            --
     ADAMS   CLERK       --
     JAMES   CLERK       --
     FORD    ANALYST     --
     MILLER  CLERK       --
     HIVE    PROGRAM     --       10300.0 NULL    NULL
 

--------------------- 本文来自 A_ChunUnique 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/Gavin_chun/article/details/78174492

Hive静态分区和动态分区的更多相关文章

  1. Hive的静态分区和动态分区

    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl/p/6831884.html 转载请注明出处 虽然之前已经用过很多次hive的分区表,但是还是找时间快速回顾总结 ...

  2. Hive中静态分区和动态分区总结

    目录 背景 第一部分 静态分区 第二部分 动态分区 第三部分 两者的比较 第四部分 动态分区使用的问题 参考文献及资料 背景 在Hive中有两种类型的分区:静态分区(Static Partitioni ...

  3. 什么是hive的静态分区和动态分区,它们又有什么区别呢?hive动态分区详解

    面试官问我,什么是hive的静态分区和动态分区,这题我会呀. 简述 分区是hive存放数据的一种方式,将列值作为目录来存放数据,就是一个分区,可以有多列. 这样查询时使用分区列进行过滤,只需根据列值直 ...

  4. 【HIVE】(2)分区表、二级分区、动态分区、分桶、抽样

    分区表: 建表语句中添加:partitioned by (col1 string, col2 string) create table emp_pt(id int, name string, job ...

  5. hive SQL 静态分区和 动态分区

    Hive 分区介绍: hive中简单介绍分区表(partition table),含动态分区(dynamic partition)与静态分区(static partition) hive中创建分区表没 ...

  6. Hive静态分区和动态分区,对应Mysql中的元数据信息

    静态分区: 手动指定分区加载数据,就是常说的静态分区的使用.但是在日常工作中用的比较多的是动态分区. 创建: hive> create table order_mulit_partition( ...

  7. 第4节 hive调优:动态分区调整问题

    执行如下截图中的语句时卡住了: 原因:yarn未启动,hive底层是要提交mapreduce到yarn上才能计算结果的. 之前启动yarn时,未执行jps查看是否已经启动.其实未启动成功: [root ...

  8. Hive分区(静态分区+动态分区)

    Hive分区的概念与传统关系型数据库分区不同. 传统数据库的分区方式:就oracle而言,分区独立存在于段里,里面存储真实的数据,在数据进行插入的时候自动分配分区. Hive的分区方式:由于Hive实 ...

  9. 对现有Hive的大表进行动态分区

    分区是在处理大型事实表时常用的方法.分区的好处在于缩小查询扫描范围,从而提高速度.分区分为两种:静态分区static partition和动态分区dynamic partition.静态分区和动态分区 ...

随机推荐

  1. tomcat去掉项目名称

    进入tomcat的conf目录,查看server.xml,找到<Host></Host>,在里面添加<Context path="" docBase= ...

  2. 安装sqlserver2008中出现的问题小结

    安装完sqlserver2008时报了几个错,但是好歹装上了,但是我想使用sa用户登录,给我出现了这么一个错 标题: 连接到服务器------------------------------ 无法连接 ...

  3. sublime 指定打开某文件的类型(text/plain)

    看下图,点击open all width ...选取你指定文件,以后打开都是你指定文件类型

  4. 林兴爆料小程序很快可以支持各个 App 直接打开小程序

    在微信开放平台基础高级产品经理林兴演讲的当场,他爆料了微信小程序一个轰动性新能力:小程序很快可以支持各个 App 直接打开小程序!没错,你没有听错,简单来说,在不久以后,所有的 App 里面都可以看到 ...

  5. gitlab+jenkins多项目,多依赖,继承等上下级项目关系的自动部署

    案例: 现有三个项目,Common,entity,serviceAPIentity依赖于Common,serviceAPI依赖于entity,也就是说common的下级项目是entity,而entit ...

  6. 自定义安装visual studio 2010开发asp.net

    VS2010的安装对于VS的安装大家肯定都熟悉,不过我在很多地方看到的是大家讲VS的全部组件都安装了,不但浪费磁盘空间,还降低了系统性能,除此之外,还有人安装了VS之后不知道顺手把MSDN安装上,害得 ...

  7. element-dialog封装成子组件

    1.父组件 <template> <card-layout :title="L('Users')" :actions="actions" @c ...

  8. sap 调试工具,修改变量值

    1: 点击修改,输入变量值,按enter键.

  9. SpringMVC的Model ModeMap ModelAndView @ModelAttribute @SessionAttribute区分

    Spring MVC整理系列(05)————Spring MVC配置解析及整合SpriSpring MVC之@ModelAttribute.@SessionAttributes以及Model的使用介绍 ...

  10. js模拟链表

    链表: 每个元素,都有一个指针,指向下一个元素 //链表 function LinkedList(){ var head = null; length = 0; this.append = funct ...