概述
hive的partition可以认为是RMDB中的分区,目的是query时减少全表扫描。
使用:
创建分区:
create EXTERNAL TABLE IF NOT EXISTS p( id STRING COMMENT 'id' ) partitioned by (seq int) STORED AS SEQUENCEFILE LOCATION 'hdfs:///hive/hdfs/p/';
当数据插入的时候会以hdfs:///hive/hdfs/p/为基础构建以分区=值为名的目录
使用分区:
insert into table p partition(seq=1) select count(1) from dual;
此时会形成hdfs:///hive/hdfs/p/seq=1/数据 的文件目录格式,在insert into的时候需要指定分区否则会报如下错误:
Need to specify partition columns because the destination table is partitioned
查询操作:
select * from p where seq=1
可以使用多个分区:
create EXTERNAL TABLE IF NOT EXISTS pp( id STRING COMMENT 'id' ) partitioned by (seq int,num int) STORED AS SEQUENCEFILE LOCATION 'hdfs:///hive/hdfs/pp/';
此时如果写入数据指定了分区那么就会形成hdfs:///hive/hdfs/pp/seq=值/num=值/数据 的目录结构
查询分区:
可以查询某表具有的分区:
show partitions pp;
可以基于分区删除数据:
ALTER TABLE pp DROP PARTITION (seq=1,num=1);
pp为外部表那么其元数据被删除,真实数据扔存在,可以通过hadoop fs查看到
ps:
1.执行insert overwrite 的时候指定分区中的数据会被删除,其他分区数据不受影响
2.一个表可以有多个分区,分区列是伪劣不是真实存在的列以目录的形式存在
3.导入数据:
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]
相关推荐
hive表修改分区数据
Hive表分区,里面有比较详细的Hive表分区方法,希望能够有所帮助。
hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据...Hive中包含以下数据模型:Table内部表,External Table外部表,Partition分区,Bucket桶。Hive默认可以直接加载文本文件,还支持sequence file 、RCFile。
1. HIVE结构 6 1.1 HIVE架构 6 1.2 Hive 和 Hadoop 关系 7 ...9.7 Partition 57 9.8 JOIN 58 9.8.1 JOIN原则 58 9.8.2 Map Join 58 9.8.3 大表Join的数据偏斜 60 9.9 合并小文件 62 9.10 Group By 62 10. HIVE FAQ: 62
Hive用户指南 目录 1. HIVE结构 6 1.1 HIVE架构 6 ...9.7 Partition 57 9.8 JOIN 58 9.8.1 JOIN原则 58 9.8.2 Map Join 58 9.8.3 大表Join的数据偏斜 60 9.9 合并小文件 62 9.10 Group By 62 10. HIVE FAQ: 62
数据库优化的一部分详解 select count(*) from dcsj_time subpartition...select count(*) from dcsj_time partition(dcsj_time_2012) select * from user_tab_partitions select * from user_tab_subpartitions
hivezzy 添加partition支持正则表达式
Hive不支持update的操作。数据一旦导入,则不可修改。要么drop掉整个表,要么建立新的表,导入新的数据。 load:加载数据到表 load data [local] inpath ‘filepath’ overwrite | into table 表名 [partition ...
1、HIVE多行转多列 源数据样式 把CAMERA_NO,RESULT_DATA两列转换为CAMERA_NO字段的数据为列名,RESULT_DATA字段对应CAMERA_NO的数据为值 方法一:利用str_to_map函数 alter table ods.iot.iot_5060_iotdaq.5060_...
hive开发文档,新手入门比较好 内容包括:安装,建表,查询,partition,执行计划等
hive 中的概率数据结构和算法。 目前只实现了 hyperloglog。 概要 -- estimate the cardinality of SELECT * FROM src GROUP BY col1, col2; SELECT hll(col1, col2).cardinality from src; -- create hyperloglog...
窗⼝函数也称为OLAP函数,OLAP 是OnLine Analytical Processing 的简称,意思是对数据库数据进⾏实时分析处理。例如,市场分析、创建财务报表、创建计划...但是,PARTITION BY ⼦句并不具备 GROUP BY ⼦句的汇总功能。
NULL 博文链接:https://ylzhj02.iteye.com/blog/2051729
ERROR : FAILED: Execution Error, return code 30041 from org.apache.hadoop.hive.ql.exec.spark.SparkTask. 前言报错信息异常分析配置改动后记 前言 在成功消除Cloudare管理界面上那些可恶的警告之后,我又对yarn...
分区表: 创建分区表 create table t_user_partition(id int, name string) ... load data local inpath '/root/hivedata/china.txt' into table t_user_partition partition(country ='china'); load dat
一:简介 分区表就是根据指定字段的值进行...静态分区: 必须手动显式的添加需要分区的字段值, 分类的值有多少个就要添加多少次 (alter table add partition)。静态分区适合分区字段的值比较少的情况。 动态分区:创建表
Big Data Learning on Hive, Spark, Presto, Superset(Data Visulaization)Learning Part 1Basic operations on HiveCreate table and load dataCreate a table without partition stored in textfilehive> create ...
[partition (partcol1=val1,…)]; (1)load data:表示加载数据 (2)local:表示从本地加载数据到 hive 表;否则从 HDFS 加载数据到 hive 表 (3)inpath:表示加载数据的路径 (4)overwrite:表示覆盖表中已有数据...
24.2 重命名分区(Renaming a Partition) 93 24.3 删除分区(Droping a Partition) 93 第25章 内置运算符 94 25.1 关系运算符 94 25.2 算术运算符 96 25.3 逻辑运算符 97 25.4 复杂运算符(Complex Operators) 97 第26...
这是Hadoop MapReduce应用程序,它为Hive外部表生成测试数据,它读取Apache Hive的表创建查询,并根据其DDL生成TEXTFILE格式的行数据。 我提到了 建立MVN清洁包装 用法 将您的DDL查询放在HDFS或S3上,并指定为-q...