hive动态分区,分区数据的几种插入方式,hive常用优化
首先列举下hive分区插入的方式:
1:从文件导入数据到hive指定分区方式
load data local inpath ‘filepath’ into table tableName partition(partitionColumn=’’);
2:先创建分区,再把文件通过任何别的方式把数据已对应格式(列分隔符可以是’\t’,’\001’等)放到对应hdfs路径下。
手动创建分区
alter table tableName add partition(partitionColume=’’);
分区的删除
alter table tableName drop partition(partitionColume=’’);
3:动态修复分区,项目上比较常用的方式。
常常是mr、spark或者flink把数据处理之后放到对应的分区目录下,但这样的数据分区表是不会识别的,因为分区表的分区元数据存储在meta store中(一般是mysql),也可以使用方式2把分区一个一个添加,但是如果分区很多就过于麻烦,可以直接使用下面的指令
msck repair table tableName
4:动态分区识别插入,比较常用
先设置动态分区相关参数
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
set hive.exec.max.dynamic.partitions=50000;
set hive.exec.max.dynamic.partitions.pernode=10000;
常常从一张表中查询数据,插入到另一张表,并根据具体字段动态分区
insert overwrite table tb_test partition(partitionColumn)select col_a,col_b,.....col_last,col_date --这个字段不是实际插入到表中的哦,只是用来标识根据此字段的值来插入到不同的分区中from tb_test0
该方式效果如下:
插入前:
插入后:
完美插入,最后一种很常用,不过不要忘记设置参数
5、hive常用优化:
1):设置reduce数目
在数据量超大的情况下通常会设置此参数
set mapred.reduce.tasks = 40;
2):设置执行引擎
set hive.execution.engine=tez;
hive动态分区,分区数据的几种插入方式,hive常用优化相关推荐
- 传统制造业面临大数据的7种改变方式
文章讲的是传统制造业面临大数据的7种改变方式,中国是个制造业大国,在工业企业信息化.数据化.数据创新领域可以做的事情很多.应用数据的思维古已有之,如同所谓的互联网思维,其实几十年前的营销学原理就有涉猎 ...
- 用python的五种方式_Python加载数据的5种不同方式(收藏)
数据是数据科学家的基础,因此了解许多加载数据进行分析的方法至关重要.在这里,我们将介绍五种Python数据输入技术,并提供代码示例供您参考. 作为初学者,您可能只知道一种使用p andas.read_ ...
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (四) —— ContentProvider...
ContentProvider是安卓平台中,在不同应用程序之间实现数据共享的一种机制.一个应用程序如果需要让别的程序可以操作自己的数据,即可采用这种机制.并且此种方式忽略了底层的数据存储实现,Cont ...
- pdo一次插入多条数据的2种实现方式
pdo一次插入多条数据的2种实现方式: **** 1.一个sql插入多个值,防注入处理放在获取到值的时候使用htmlspecialchars(addslashes($params )); try{fo ...
- Android数据的四种存储方式
很清晰的思路,转自Android数据的四种存储方式 作为一个完成的应用程序,数据存储操作是必不可少的.因此,Android系统一共提供了四种数据存储方式.分别是:SharePreference.SQL ...
- python数据加载常规教程_Python加载数据的5种不同方式(收藏)
数据是数据科学家的基础,因此了解许多加载数据进行分析的方法至关重要.在这里,我们将介绍五种Python数据输入技术,并提供代码示例供您参考. 作为初学者,您可能只知道一种使用p andas.read_ ...
- hive动态分区shell_Hive/Shell 创建Hive 库 ,表脚本,Hive 动态增加分区脚本
最近工作中使用到了Hive, 并对Hive 的数据库,表完成创建. 创建的表为分区表,也涉及到了分区表 的按天动态增加分区. 代码组织结构: 创建数据库: create_dmp.hql --dmp ...
- Hive中删除表数据的几种方式
在内部表中 仅删除表中数据,保留表结构 方法一 truncate table 表名; (truncate用于删除所有的行,这个行为在hive元存储删除数据是不可逆的) truncate 不能删除外部表 ...
- 数据仓库Hive编程——HiveQL的数据定义(一):Hive中的数据库
分类目录:商业智能<数据仓库Hive编程>总目录 相关文章: HiveQL的数据定义(一):Hive中的数据库 HiveQL的数据定义(二):修改数据库 HiveQL的数据定义(三):创建 ...
最新文章
- vm虚拟机和windows共享文件夹
- CDH 的Cloudera Manager免费与收费版的对比表
- windows dos命令窗口的环境变量
- Linux常用端口查询命令及常见端口和端口分类
- Qt学习笔记之QString
- Tomcat9 启动警告 org.apache.catalina.webresources.Cache.getResource ...请考虑增加缓存的最大空间
- java中如何使用反射调用方法以及获得类中的属性
- elementui分页组件按钮样式修改_Vue使用Elementui修改默认最快方法!
- Java Exe生成工具 JSmooth
- 程序员该如何转型 5G 开发?
- jQuery EasyUI -ComboBox(下拉列表框)使用
- 不要轻率的问自己可以想明白可以确认的问题
- 通信子网和资源子网的区别
- Alluxio的Raft HA实现
- 5 实战1—利用Python获取新闻网页源代码
- 注释全 新手可懂 可复用式复数计算器C++实现
- linux挂移动硬盘命令,linux挂载命令mount及U盘、移动硬盘的挂载
- Python实现行业轮动量化选股【附完整源码】
- LTE 系统信息SI
- 寒江独钓NDIS驱动学习总结