【Hive】动态分区插入
使用动态分区插入数据时,无需指定分区键值,系统根据插入的数据,自动分配分区。
动态分区需注意以下几点:
- 需有一个同构的普通表做为源表;
- 分区键值和源表字段之间是根据位置来判断的,而不是根据命名来匹配的,分区键值一般对应SELECT后的最后一个字段;
- 动态分区默认是关闭的,使用前要设置相关参数;
下面是一个动态分区的例子:
# 创建分区表和普通表
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】动态分区插入相关推荐
- shell脚本中向hive动态分区插入数据
在hive上建表与普通分区表创建方法一样: 1 CREATE TABLE `dwa_m_user_association_circle`( 2 `device_number` string, 3 `o ...
- hive动态分区shell_Hive动态分区 参数配置及语法
Hive本身是不支持动态分区的.. 但动态分区是真的方便啊..不然手动维护要累死..按日期甚至小时来分区时动辄就好几千上万的分区..手动到哪一年去..? 想要用动态分区要先做一些设置来修改默认的配置. ...
- hive分区用2个字段有何限制_关于Hive使用动态分区插入数据详解
1.创建一个单一字段分区表 hive> create table dpartition(id int ,name string ) partitioned by(ct string ); 2 ...
- hive之动态分区插入数据及其参数配置
hive使用动态分区插入数据详解 往hive分区表中插入数据时,如果需要创建的分区很多,比如以表中某个字段进行分区存储,则需要复制粘贴修改很多sql去执行,效率低.因为hive是批处理系统,所以hiv ...
- hive动态分区shell_hive-shell批量操作分区文件
使用hive表的过程中经常需要一些便捷操作: 一.hdfs文件批量写SUCCESS文件,一般来说hive表生成结束,会产生一个_SUCCESS文件判断数据是否正常刷新完成 但是如果是动态分区插入表进行 ...
- Hive动态分区和分桶
Hive动态分区和分桶 1. Hive动态分区和分桶 1.Hive动态分区 1.hive的动态分区介绍 2.hive的动态分区配置 3.hive动态分区语法 2.Hive分桶 1.Hive分桶的介绍 ...
- 解决Hive动态分区小文件过多问题
一.问题描述 为了支撑相应的业务需求,本次生产环境通过Hive SQL来完成动态插入分区表数据的脚本开发.但是,动态分区的插入往往会伴随产生大量的小文件的发生.而小文件产生过多的影响主要分为以下两种情 ...
- hive 动态分区实现 (hive-1.1.0)
hive 动态分区实现 (hive-1.1.0) 笔者使用的hive版本是hive-1.1.0 hive-1.1.0动态分区的默认实现是只有map没有reduce,通过执行计划就可以看出来.(执行计划 ...
- hive分区用2个字段有何限制_[特性]Hive动态分区功能使用
[特性]Hive动态分区功能使用 2016-01-31 21:40 说明 Hive有两种分区,一种是静态分区,也就是普通的分区.另一种是动态分区.动态分区在数据导入时,会根据具体的字段值自行决定导入, ...
最新文章
- 从架构特点到功能缺陷,重新认识分析型分布式数据库
- 港口物流系统设计与优化-SMU在线学习笔记
- 怎么钢枪_和平精英有战术钢枪和无脑冲有何区别?你们怎么看待这个问题
- 网络安全之tcp阻截引擎 (一)
- 在 PyCharm 中写代码
- bzoj 3407: [Usaco2009 Oct]Bessie's Weight Problem 贝茜的体重问题(DP)
- 安装mujoco报错:distutils.errors.DistutilsExecError: command ‘gcc‘ failed with exit status 1
- 远古有圆孔的头颅可能是穿越者
- 中小学数字化标准音乐教室建设及设备配套方案
- W型加密栅栏密码解密
- java电子小词典课程设计,java课程设计---英汉电子词典
- 群晖nas存储系统原理_一篇看懂黑群晖重装系统
- vue常用的几个框架
- js 小写金额转大写金额
- 计算机保存文件快捷键,保存快捷键是什么,保存文档的快捷键
- EayRadius 于 2013-7-19 进行体验度更新,增加用户体验度
- VM虚拟机更换网络环境后无法连接网络
- java对象为什么要重写equals方法
- FaceNet使用简介
- 3GPP TS 23501-g51 中英文对照 | 4.3.4 Interworking between ePDG connected to EPC and 5GS
热门文章
- 文件/目录权限设置命令:chmod
- Qt实现Areo效果
- QThread(一)_vortex_新浪博客
- load()是python文件操作的函数_python深入(函数,文件操作)
- python 图书馆管理程序下载_图书管理系统 免费开源代码 开发,分享 - CodeForge.cn...
- 用python计算准确率_Pytorch 计算误判率,计算准确率,计算召回率的例子
- 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 80070005 拒绝访问...
- Using SQLite database in your Windows 10 apps
- 八、IO优化(3)稀疏列
- 禁用并删除 Wordpress 文章修订(revision)记录