`
小网客
  • 浏览: 1216473 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hive之partition

 
阅读更多

概述

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 ...)]

0
0
分享到:
评论

相关推荐

    修改hive表分区名称

    hive表修改分区数据

    Hive表分区

    Hive表分区,里面有比较详细的Hive表分区方法,希望能够有所帮助。

    hive原理1介绍

    hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据...Hive中包含以下数据模型:Table内部表,External Table外部表,Partition分区,Bucket桶。Hive默认可以直接加载文本文件,还支持sequence file 、RCFile。

    分布式数据仓库Hive大全

    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用户指南

    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支持正则表达式

    hivezzy 添加partition支持正则表达式

    Hive DML

    Hive不支持update的操作。数据一旦导入,则不可修改。要么drop掉整个表,要么建立新的表,导入新的数据。 load:加载数据到表 load data [local] inpath ‘filepath’ overwrite | into table 表名 [partition ...

    HIVE多行转多列 和 多列转多行

    1、HIVE多行转多列 源数据样式 把CAMERA_NO,RESULT_DATA两列转换为CAMERA_NO字段的数据为列名,RESULT_DATA字段对应CAMERA_NO的数据为值 方法一:利用str_to_map函数 alter table ods.iot.iot_5060_iotdaq.5060_...

    hive开发文档

    hive开发文档,新手入门比较好 内容包括:安装,建表,查询,partition,执行计划等

    hive-probabilistic-utils:hive 的概率数据结构和算法

    hive 中的概率数据结构和算法。 目前只实现了 hyperloglog。 概要 -- estimate the cardinality of SELECT * FROM src GROUP BY col1, col2; SELECT hll(col1, col2).cardinality from src; -- create hyperloglog...

    Hive SQL大厂必考常用窗口函数及面试题.pdf

    窗⼝函数也称为OLAP函数,OLAP 是OnLine Analytical Processing 的简称,意思是对数据库数据进⾏实时分析处理。例如,市场分析、创建财务报表、创建计划...但是,PARTITION BY ⼦句并不具备 GROUP BY ⼦句的汇总功能。

    sqoop1: import to hive partitioned table

    NULL 博文链接:https://ylzhj02.iteye.com/blog/2051729

    【hive on spark Error】return code 30041 from org.apache.hadoop.hive.ql.exec.spark.SparkTask.

    ERROR : FAILED: Execution Error, return code 30041 from org.apache.hadoop.hive.ql.exec.spark.SparkTask. 前言报错信息异常分析配置改动后记 前言 在成功消除Cloudare管理界面上那些可恶的警告之后,我又对yarn...

    Hive分区/分桶

    分区表: 创建分区表 ​ 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

    Hive分区表

    一:简介 分区表就是根据指定字段的值进行...静态分区: 必须手动显式的添加需要分区的字段值, 分类的值有多少个就要添加多少次 (alter table add partition)。静态分区适合分区字段的值比较少的情况。 动态分区:创建表

    LearnBasicBigDataTech:一些大数据分析项目,例如Spark,Hive,Presto和数据可视化(例如Superset)

    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 ...

    快速学习-DML数据操作

    [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...

    HiveTestDataGenerator

    这是Hadoop MapReduce应用程序,它为Hive外部表生成测试数据,它读取Apache Hive的表创建查询,并根据其DDL生成TEXTFILE格式的行数据。 我提到了 建立MVN清洁包装 用法 将您的DDL查询放在HDFS或S3上,并指定为-q...

Global site tag (gtag.js) - Google Analytics