hive基本操作

Posted csyusu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive基本操作相关的知识,希望对你有一定的参考价值。

一、创建分区分桶表

//clustered by (pnl_id) into 40 buckets 分成40个桶,动态分区如果分区列值太多,造成文件数过多引起系统崩溃等问题,因此可以对该列分桶,会根据hash值分桶。
create table test(
pnl_id string,
event_timekey string
)
partitioned by (factory string)
clustered by (pnl_id) into 40 buckets
row format serde org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe
with serdeproperties (
field.delim=\t,
escape.delim=\n,
serialization.null.format=NULL,
serialization.encoding=UTF-8
) 
stored as parquet;
//select 源表 分区列跟据位置匹配,并不是根据名称
insert into test partition(factory) select pnl_id,event_timekey,factory as fac from dwr_pnl_hist where shift_timekey=20190610 180000‘;
set hive.exec.dynamic.partition=true;//开启动态分区
set hive.exec.dynamic.partition.mode=nonstrict;//非严格的分区模式 开启之后才能实现insert动态分区
set hive.exec.max.dynamic.partitions.pernode=100;//每个mapper或reducer可以创建的最大动态分区个数
set hive.exec.max.dynamic.partitions=1000//一个动态分区语句可创建动态分区个数
set hive.exec.max.created.files=100000//全局可创建最多文件个数

set hive.enforce.bucketing=true;//开启强制分桶 

二、常用查询命令

//sort by 每个reduce内部排序 order by 数据通过一个reduce全局排序
select * from test sort by event_timekey desc limit 10;

 

以上是关于hive基本操作的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段15——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程

Apache Hive 基本理论与安装指南

VSCode 如何操作用户自定义代码片段(快捷键)

c_cpp Robolution基本代码片段

Hive数据仓库--Java代码JDBC方式访问Hive中表的数据