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

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

2、加载数据到分区表

1 load data local inpath '/opt/data/order_created.txt' overwrite into table order_mulit_partition PARTITION(event_month='201405', step='1');

order_created.txt内容如下

1  order_number           event_time
2 10703007267488  2014-05-01 06:01:12.334+01
3 10101043505096  2014-05-01 07:28:12.342+01
4 10103043509747  2014-05-01 07:50:12.33+01
5 10103043501575  2014-05-01 09:27:12.33+01
6 10104043514061  2014-05-01 09:03:12.324+01

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

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

 1 hive (default)> create table emp_dynamic_partition(
 2               > empno int,
 3               > ename string,
 4               > job string,
 5               > mgr int,
 6               > hiredate string,
 7               > sal double,
 8               > comm double)
 9               > PARTITIONED BY(deptno int)
10               > row format delimited fields terminated by '\t';

2、采用动态方式加载数据到目标表
加载之前先设置一下下面的参数

1 hive (default)> set hive.exec.dynamic.partition.mode=nonstrict

开始加载

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

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

3、验证一下
有值

 1 hive (default)> select * from emp_dynamic_partition;
 2 OK
 3 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
 4 7782    CLARK   MANAGER 7839    1981-6-9        2450.0  NULL    10
 5 7839    KING    PRESIDENT       NULL    1981-11-17      5000.0  NULL    10
 6 7934    MILLER  CLERK   7782    1982-1-23       1300.0  NULL    10
 7 7369    SMITH   CLERK   7902    1980-12-17      800.0   NULL    20
 8 7566    JONES   MANAGER 7839    1981-4-2        2975.0  NULL    20
 9 7788    SCOTT   ANALYST 7566    1987-4-19       3000.0  NULL    20
10 7876    ADAMS   CLERK   7788    1987-5-23       1100.0  NULL    20
11 7902    FORD    ANALYST 7566    1981-12-3       3000.0  NULL    20
12 7499    ALLEN   SALESMAN        7698    1981-2-20       1600.0  300.0   30
13 7521    WARD    SALESMAN        7698    1981-2-22       1250.0  500.0   30
14 7654    MARTIN  SALESMAN        7698    1981-9-28       1250.0  1400.0  30
15 7698    BLAKE   MANAGER 7839    1981-5-1        2850.0  NULL    30
16 7844    TURNER  SALESMAN        7698    1981-9-8        1500.0  0.0     30
17 7900    JAMES   CLERK   7698    1981-12-3       950.0   NULL    30
18 8888    HIVE    PROGRAM 7839    1988-1-23       10300.0 NULL    NULL

有分区(自动分区)

1 hive (default)> show partitions emp_dynamic_partition;
2 OK
3 partition
4 deptno=10
5 deptno=20
6 deptno=30
7 deptno=__HIVE_DEFAULT_PARTITION__
8 Time taken: 0.29 seconds, Fetched: 4 row(s)

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

 1 hive (default)> select * from emp;
 2 OK
 3 emp.empno       emp.ename       emp.job emp.mgr emp.hiredate    emp.sal emp.comm        emp.deptno
 4 7369    SMITH   CLERK   7902    1980-12-17      800.0   NULL    20
 5 7499    ALLEN   SALESMAN        7698    1981-2-20       1600.0  300.0   30
 6 7521    WARD    SALESMAN        7698    1981-2-22       1250.0  500.0   30
 7 7566    JONES   MANAGER 7839    1981-4-2        2975.0  NULL    20
 8 7654    MARTIN  SALESMAN        7698    1981-9-28       1250.0  1400.0  30
 9 7698    BLAKE   MANAGER 7839    1981-5-1        2850.0  NULL    30
10 7782    CLARK   MANAGER 7839    1981-6-9        2450.0  NULL    10
11 7788    SCOTT   ANALYST 7566    1987-4-19       3000.0  NULL    20
12 7839    KING    PRESIDENT       NULL    1981-11-17      5000.0  NULL    10
13 7844    TURNER  SALESMAN        7698    1981-9-8        1500.0  0.0     30
14 7876    ADAMS   CLERK   7788    1987-5-23       1100.0  NULL    20
15 7900    JAMES   CLERK   7698    1981-12-3       950.0   NULL    30
16 7902    FORD    ANALYST 7566    1981-12-3       3000.0  NULL    20
17 7934    MILLER  CLERK   7782    1982-1-23       1300.0  NULL    10
18 8888    HIVE    PROGRAM 7839    1988-1-23       10300.0 NULL    NULL

 

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

转载于:https://www.cnblogs.com/shujuxiong/p/9712907.html

Hive静态分区和动态分区相关推荐

  1. hive的静态分区与动态分区-用法实例

    概述 本文是对[3]的复现 所有的SQL操作都在下方gitee链接中 https://gitee.com/appleyuchi/Flink_Code/blob/master/hive动态静态分区/hi ...

  2. 深圳大数据培训:大数据开发之掌握Hive的静态分区与动态分区

    深圳大数据培训:大数据开发之掌握Hive的静态分区与动态分区 分区是hive存放数据的一种方式.将列值作为目录来存放数据,就是一个分区. 这样查询时使用分区列进行过滤,只需根据列值直接扫描对应目录下的 ...

  3. Hive实践1之【静态分区及动态分区基本操作】

    Hive分区 引言 1.静态分区 1.1 静态分区--单分区 1.2 静态分区--多分区 2.动态分区 2.1 动态分区--单分区 2.2 动态分区--多分区 3.静态+动态分区 4.动态分区优化 引 ...

  4. Hive分区表:静态分区、动态分区、多重分区介绍

    01 分区表的引入.产生背景 现有6份数据文件,分别记录了<王者荣耀>中6种位置的英雄相关信息.现要求通过建立一张表t_all_hero,把6份文件同时映射加载. create table ...

  5. Hive分区——Partition(静态分区,动态分区)详解

    文章目录 分区目的 分区的创建 1.创建建表时候不管动态还是静态分区 2.执行load 装载数据 3.查看表结构,查询分区表的数据 4.静态分区: 5.动态分区: 多分区 表分区的增删改查 分区目的 ...

  6. (王道408考研操作系统)第三章内存管理-第一节4:连续分配管理方式(单一连续、固定分区和动态分区分配)

    文章目录 一:单一连续分配 二:固定分区分配 (1)分区大小相等与分区大小不等 (2)分区说明表 三:动态分区分配 (1)采用的数据结构(主要有两种) (2)动态分配分区算法 (3)如何进行分配与回收 ...

  7. hive静态分区,动态分区,分桶区别

    文章目录 绪论 创建静态分区表 1.准备数据 2.建表语句 3.添加分区,加载数据 4.进入网页(50070)查看 创建动态分区表 1.准备数据 2.建表语句 1.首先创建普通表 2.加载数据 3.创 ...

  8. hive动态分区shell_Hive动态分区 参数配置及语法

    Hive本身是不支持动态分区的.. 但动态分区是真的方便啊..不然手动维护要累死..按日期甚至小时来分区时动辄就好几千上万的分区..手动到哪一年去..? 想要用动态分区要先做一些设置来修改默认的配置. ...

  9. Hive 05_hive变量、动态分区

    hive 参数.变量     --hive当中的参数.变量,都是以命名空间开头     --通过${}方式进行引用,其中system.env下的变量必须以前缀开头 hive 参数设置方式 --1.修改 ...

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

    原文地址: https://www.cnblogs.com/yongjian/archive/2017/03/29/6640951.html   Hive分区的概念与传统关系型数据库分区不同.   传 ...

最新文章

  1. IDEA 构建为了打 jar 包的工程,包含 maven 打 jar 包的过程
  2. 你认识它们吗?2014十大科技流行词
  3. HNUSTOJ 1601:名字缩写
  4. MySQL数据库安装与配置详解
  5. STL14-set/multiset容器
  6. Manjaro下安装VirtualBox
  7. 机器学习--详解基于梯度下降的Logistic回归算法原理
  8. java day33【JavaScript基础】
  9. matlab 大于并且小于,matlab分段函数中大于、小于(“」”、“「”)的应用
  10. 最新的SAS SID 2023可用至2023年1月SAS 9.4 SID续订更新sas sid 2022服务器通用版server
  11. 计算机安全权限不足或配置文件损坏,Windows XP用户配置文件丢失或损坏后的恢复方法...
  12. java 箭头符号_箭头符号大全
  13. ⭐李宏毅2020作业2---logistic regression
  14. mysql日期时间相关
  15. QMI8658 - 姿态传感器学习笔记 - Ⅱ
  16. 思科设备VLAN配置命令
  17. 运行 RoCEv2 的网络注意事项
  18. 无缝移植J2ME程序到OPhone平台解决方案
  19. Python学习笔记--exe文件打包与UI界面设计
  20. 论文精度笔记(五):《Micro-YOLO: Exploring Efficient Methods to Compress CNN based Object Detection Model》

热门文章

  1. 9.3 客户端接收响应信息(异步转同步的实现)
  2. 常用Docker 镜像命令(二)
  3. csharp:SQLite and Access using C# code read data
  4. Bash脚本15分钟进阶教程-转
  5. tomcat 日志配置
  6. spark学习 小汇集
  7. 解决Eclipse 64位启动时,报jvm.dll错
  8. 推荐一款强大的国产开源监控系统!
  9. Java中的对象都是在堆上分配的吗?
  10. 新的一年,和大家一起进步