hive创建分区

HIVE的分区通过在创建表时启用partitionby实现,用来partition的维度并不是实际数据的某一列,具体分区的标志是由插入内容时给定的。当要查询某一分区的内容时可以采用where语句,形似where tablename.partition_key >a来实现。

创建含分区的表。

命令原型:

CREATE TABLE page_view(viewTime INT, userid BIGINT,

page_urlSTRING, referrer_url STRING,

ip STRINGCOMMENT ‘IP Address of the User‘)

COMMENT ‘This isthe page view table‘

PARTITIONED BY(dtSTRING, country STRING)

CLUSTEREDBY(userid) SORTED BY(viewTime) INTO 32 BUCKETS

ROW FORMATDELIMITED

FIELDSTERMINATED BY ‘\001‘

COLLECTION ITEMSTERMINATED BY ‘\002‘

MAP KEYSTERMINATED BY ‘\003‘

STORED ASSEQUENCEFILE;

Eg:

建表:

CREATE TABLE c02_clickstat_fatdt1

(yyyymmdd  string,

id              INT,

ip               string,

country          string,

cookie_id        string,

page_id          string  ,

clickstat_url_id int,

query_string     string,

refer            string

)PARTITIONED BY(dt STRING)

row format delimited fields terminated by ‘\005‘ stored astextfile;

装载数据:

LOAD DATA INPATH‘/user/admin/SqlldrDat/CnClickstat/20101101/19/clickstat_gp_fatdt0/0‘ OVERWRITEINTO TABLE c02_clickstat_fatdt1

PARTITION(dt=‘20101101‘);

访问某一个分区

SELECT count(*)

FROMc02_clickstat_fatdt1 a

WHERE a.dt >=‘20101101‘ AND a.dt < ‘20101102‘;

时间: 2024-10-06 10:47:08

hive创建分区的相关文章

HIVE动态分区实战

一)hive中支持两种类型的分区: 静态分区SP(static partition) 动态分区DP(dynamic partition) 静态分区与动态分区的主要区别在于静态分区是手动指定,而动态分区是通过数据来进行判断.详细来说,静态分区的列实在编译时期,通过用户传递来决定的:动态分区只有在SQL执行时才能决定. 二)实战演示如何在hive中使用动态分区 1.创建一张分区表,包含两个分区dt和ht表示日期和小时 CREATE TABLE partition_table001 ( name ST

hive 创建/删除/截断 表(翻译自Hive wiki)

这里罗列常用操作,更多参考 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-Create%2FDrop%2FTruncateTable 简单的创建表 create table table_name ( id int, dtDontQuery string, name string ) 创建有分区的表 create table table_name ( id int, dtD

hive创建表语句详解

创建表的语句: Create [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] [CLUSTERED BY (col_name, col_name, ...) [SORTED BY (

hive 动态分区与混合分区

使用hive分区,可以在查询的只查询对应分区的数据,避免了全表扫描.大大提升了查询速度. 今天我们讨论下,hive分区中的两个用法,动态分区和混合分区. hive混合分区 就是多级分区.在某个分区下继续创建分区. 比如 分区 dt=2019-03-10的fruit销售表中,继续区分apple,orange,banana的销售数据. 我们经常分开统计 各种水果的销售情况,那么使用混合分区就非常合适.    代码: 混合分区建表语句: hive动态分区: 根据指定字段,hive自动生成分区. 原文地

hive创建表失败,drop表失败

一.hive创建表失败,报错: CREATE TABLE pokes (foo INT, bar STRING);FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:javax.jdo.JDODataStoreException: An exception was thrown while adding/validating class(

hive归档分区

归档hive历史分区不会减少hdfs存储空间,但是可以有效减轻hadoop namenode的压力,尤其在于小文件比较多的情况下. $mkdir $HIVE_HOME/auxlib $ cp /opt/cdh-5.3.6/hadoop-2.5.0/share/hadoop/tools/lib/hadoop-archives-2.5.0-cdh5.3.6.jar /opt/cdh-5.3.6/hive-0.13.1/auxlib/hadoop-archives-2.5.0-cdh5.3.6.jar

创建分区、格式化分区、挂载分区

大致思路: 1.查看分区状态 2.创建分区 3.重新加载分区表 4.格式化分区 5.挂载分区到目录 查看当前分区状态: [[email protected] ~]# fdisk -cul   Disk /dev/sda: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors Units = sectors of 1 * 512 = 512 bytes Secto

linux创建分区、文件系统、挂载操作

创建分区: 分别输入n(创建分区).p(主分区)或e(扩展分区).设置大小,最后w保存退出. 使用kpartx -af /dev/sdb 或partx -a /dev/sdb,让内核重读设备分区表. 创建文件系统:mkfs -t ext4 /dev/sdb1,如果出现如下问题: 说明分区/dev/sdb1正在被DM管理,可以使用dmsetup status查看,然后使用dmsetup remove /dev/sdb1 ,再次执行mkfs命令. 挂载分区:mount -t ext4 /dev/sd

创建分区

1.为已存在表创建分区 ALTER TABLE `tb_xxx` PARTITION BY LIST COLUMNS(col_id)(PARTITION p0 VALUES IN (1),PARTITION p1 VALUES IN (4),PARTITION p2 VALUES IN (5)); 分区注意事项. A.字段必须包含在主键中; B.分区字段不能为NULL 2.查看select涉及到的分区 EXPLAIN PARTITIONS SELECT * FROM tb_xxx WHERE c