一、静态分区
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. FreeMarker详解

    什么是 FreeMarker? FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具. 它不是面向最终用 ...

  2. 前端 html button标签

    就是一个按钮标签 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> < ...

  3. dedecms如何去除后台登陆验证码

    用dedecms批量建站一般直接把文件打包复制,然后导入数据库,一个新网站就好了,但有时后台一直无法登录,提示验证码错误.那我们就想怎么把验证码关闭,现在就给大家解决织梦去掉后台登陆验证码.我们知道d ...

  4. mysql mpm

    mysql mpm 参考文章 http://www.myexception.cn/mysql/1968274.html http://www.linuxidc.com/Linux/2013-07/86 ...

  5. Hibernate三种状态,缓存,以及update更新问题

    一. Hibernate中对象的三种状态 1. 瞬时状态(transient) 当我们通过Java的new关键字来生成一个实体对象时,这时这个实体对象就处于自由状态,此时该对象只是通过JVM获得了一块 ...

  6. ps切图插件

    ps切图工具插件 下载网址:http://www.cutterman.cn/zh/cutterman 安装完插件,关闭ps,重新打开,窗口- 扩展,即可使用

  7. Django 模板中 变量 过滤器的使用方法

    一.变量       1.变量的形式是:{{variable}}, 当模板引擎碰到变量的时候,引擎使用变量的值代替变量.    2.使用dot(.)能够访问变量的属性    3.当模板引擎碰到dot的 ...

  8. jsp内置对象学习记录

    1.session,是一个会话保留在服务器端的对象(默认保留时间为30分钟),所以我们可以在session里面放用户信息以便后续的访问便利(缺点:cookie劫持,导致用户数据泄露).案例:(1)同个 ...

  9. wue父子通信和动态路由 还有点击事件直接赋值传参数

    这种直接在后面赋值 传值

  10. Jenkins 主备master-slave模式搭建

    jenkins的版本是2.70,使用下来感觉是一个不错的版本,至于如何搭建jenkins,在此就不多说了,推荐的方法是先安装tomcat,然后再加jenkins.war放在tomcat的webapp路 ...