使用动态分区插入数据时,无需指定分区键值,系统根据插入的数据,自动分配分区。
动态分区需注意以下几点:

  1. 需有一个同构的普通表做为源表;
  2. 分区键值和源表字段之间是根据位置来判断的,而不是根据命名来匹配的,分区键值一般对应SELECT后的最后一个字段;
  3. 动态分区默认是关闭的,使用前要设置相关参数;

下面是一个动态分区的例子:

# 创建分区表和普通表
create table myhive.student_dynamic_partition
(stu_no int,stu_name string
) partitioned by (class_no int)
row format delimited fields terminated by ' ';create table myhive.student
(stu_no int,stu_name string,class_no int
)
row format delimited fields terminated by ' ';# 上传数据文件到HDFS
[hadoop@node01 hiveData]$ hdfs dfs -put student.txt /
[hadoop@node01 hiveData]$ hdfs dfs -cat /student.txt
1001 john 1
1002 susan 1
1003 smith 2
1004 tom 2
1005 simen 3# 普通表导入数据
hive (myhive)> load data inpath '/student.txt' overwrite into table student;
hive (myhive)> select * from student;
student.stu_no  student.stu_name        student.class_no
1001    john    1
1002    susan   1
1003    smith   2
1004    tom     2
1005    simen   3# 使用动态分区插入数据到分区表中
hive (myhive)> set hive.exec.dynamic.partition=true;              #打开动态分区
hive (myhive)> set hive.exec.dynamic.partition.mode=nonstrict;    #动态分区模式设置为非严格
hive (myhive)> set hive.exec.max.dynamic.partitions.pernode=1000; #设置每个mapper或reducer的最大动态分区个数hive (myhive)> insert overwrite table student_dynamic_partition>  partition (class_no)> select stu_no,stu_name,class_no> from student;hive (myhive)> select * from student_dynamic_partition;
student_dynamic_partition.stu_no        student_dynamic_partition.stu_name      student_dynamic_partition.class_no
1001    john    1
1002    susan   1
1003    smith   2
1004    tom     2
1005    simen   3            

【Hive】动态分区插入相关推荐

  1. shell脚本中向hive动态分区插入数据

    在hive上建表与普通分区表创建方法一样: 1 CREATE TABLE `dwa_m_user_association_circle`( 2 `device_number` string, 3 `o ...

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

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

  3. hive分区用2个字段有何限制_关于Hive使用动态分区插入数据详解

    1.创建一个单一字段分区表 hive>  create table dpartition(id int ,name string ) partitioned by(ct string  ); 2 ...

  4. hive之动态分区插入数据及其参数配置

    hive使用动态分区插入数据详解 往hive分区表中插入数据时,如果需要创建的分区很多,比如以表中某个字段进行分区存储,则需要复制粘贴修改很多sql去执行,效率低.因为hive是批处理系统,所以hiv ...

  5. hive动态分区shell_hive-shell批量操作分区文件

    使用hive表的过程中经常需要一些便捷操作: 一.hdfs文件批量写SUCCESS文件,一般来说hive表生成结束,会产生一个_SUCCESS文件判断数据是否正常刷新完成 但是如果是动态分区插入表进行 ...

  6. Hive动态分区和分桶

    Hive动态分区和分桶 1. Hive动态分区和分桶 1.Hive动态分区 1.hive的动态分区介绍 2.hive的动态分区配置 3.hive动态分区语法 2.Hive分桶 1.Hive分桶的介绍 ...

  7. 解决Hive动态分区小文件过多问题

    一.问题描述 为了支撑相应的业务需求,本次生产环境通过Hive SQL来完成动态插入分区表数据的脚本开发.但是,动态分区的插入往往会伴随产生大量的小文件的发生.而小文件产生过多的影响主要分为以下两种情 ...

  8. hive 动态分区实现 (hive-1.1.0)

    hive 动态分区实现 (hive-1.1.0) 笔者使用的hive版本是hive-1.1.0 hive-1.1.0动态分区的默认实现是只有map没有reduce,通过执行计划就可以看出来.(执行计划 ...

  9. hive分区用2个字段有何限制_[特性]Hive动态分区功能使用

    [特性]Hive动态分区功能使用 2016-01-31 21:40 说明 Hive有两种分区,一种是静态分区,也就是普通的分区.另一种是动态分区.动态分区在数据导入时,会根据具体的字段值自行决定导入, ...

最新文章

  1. 从架构特点到功能缺陷,重新认识分析型分布式数据库
  2. 港口物流系统设计与优化-SMU在线学习笔记
  3. 怎么钢枪_和平精英有战术钢枪和无脑冲有何区别?你们怎么看待这个问题
  4. 网络安全之tcp阻截引擎 (一)
  5. 在 PyCharm 中写代码
  6. bzoj 3407: [Usaco2009 Oct]Bessie's Weight Problem 贝茜的体重问题(DP)
  7. 安装mujoco报错:distutils.errors.DistutilsExecError: command ‘gcc‘ failed with exit status 1
  8. 远古有圆孔的头颅可能是穿越者
  9. 中小学数字化标准音乐教室建设及设备配套方案
  10. W型加密栅栏密码解密
  11. java电子小词典课程设计,java课程设计---英汉电子词典
  12. 群晖nas存储系统原理_一篇看懂黑群晖重装系统
  13. vue常用的几个框架
  14. js 小写金额转大写金额
  15. 计算机保存文件快捷键,保存快捷键是什么,保存文档的快捷键
  16. EayRadius 于 2013-7-19 进行体验度更新,增加用户体验度
  17. VM虚拟机更换网络环境后无法连接网络
  18. java对象为什么要重写equals方法
  19. FaceNet使用简介
  20. 3GPP TS 23501-g51 中英文对照 | 4.3.4 Interworking between ePDG connected to EPC and 5GS

热门文章

  1. 文件/目录权限设置命令:chmod
  2. Qt实现Areo效果
  3. QThread(一)_vortex_新浪博客
  4. load()是python文件操作的函数_python深入(函数,文件操作)
  5. python 图书馆管理程序下载_图书管理系统 免费开源代码 开发,分享 - CodeForge.cn...
  6. 用python计算准确率_Pytorch 计算误判率,计算准确率,计算召回率的例子
  7. 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 80070005 拒绝访问...
  8. Using SQLite database in your Windows 10 apps
  9. 八、IO优化(3)稀疏列
  10. 禁用并删除 Wordpress 文章修订(revision)记录