美文网首页
HiveQL 数据定义:分区

HiveQL 数据定义:分区

作者: 无敌的肉包 | 来源:发表于2018-08-12 15:34 被阅读0次

分区
• 建立分区表
• 增加分区
• 重命名分区
• 删除分区

hive组织表到分区。它是将一个表到基于分区列,如日期,城市和部门的值相关方式。使用分区,很容易对数据进行部分查询

表或分区可以细分成桶,以提供额外的结构,可以使用更高效的查询的数据。桶的工作是基于表的一些列的散列函数值。

例如,一个名为Tab1表包含雇员数据,如 id,name,deptyoj (即加盟年份)。假设需要检索所有在2012年加入,查询搜索整个表所需的信息员工的详细信息。但是,如果用年份分区雇员数据并将其存储在一个单独的文件,它减少了查询处理时间。下面的示例演示如何分区的文件和数据:

下面文件包含employee 数据表。

/tab1/employeedata/file1

id, name, dept, yoj
1, gopal, TP, 2012
2, kiran, HR, 2012
3, kaleel,SC, 2013
4, Prasanth, SC, 2013

上面的数据被划分成使用年两个文件。

/tab1/employeedata/2012/file2

1, gopal, TP, 2012
2, kiran, HR, 2012

/tab1/employeedata/2013/file3

3, kaleel,SC, 2013
4, Prasanth, SC, 2013

这就是两个分区文件

建分区表
CREATE TABLE par_table(viewTime INT, userid BIGINT,
     page_url STRING, referrer_url STRING,
     ip STRING COMMENT 'IP Address of the User')
    COMMENT 'This is the page view table'
    PARTITIONED BY(date STRING, pos STRING)
    ROW FORMAT DELIMITED ‘\t’
    FIELDS TERMINATED BY '\n'
    STORED AS SEQUENCEFILE;
增加分区

可以通过添加分区表改变所述表。假设我们有一个表叫employee ,拥有如 Id,Name,Salary, Designation, Dept, 和 yoj等字段。
语法:

ALTER TABLE table_name ADD [IF NOT EXISTS] PARTITION partition_spec
[LOCATION 'location1'] partition_spec [LOCATION 'location2'] ...;

partition_spec:
: (p_column = p_col_value, p_column = p_col_value, ...)

以下查询用于将分区添加到employee表。

hive> ALTER TABLE employee
> ADD PARTITION (year=’2012’)
> location '/2012/part2012';
重命名分区

此命令的语法如下。

ALTER TABLE table_name PARTITION partition_spec RENAME TO PARTITION partition_spec;

以下查询用来命名一个分区:

hive> ALTER TABLE employee PARTITION (year=’1203’)
   > RENAME TO PARTITION (Yoj=’1203’);
删除分区

下面语法用于删除分区:

ALTER TABLE table_name DROP [IF EXISTS] PARTITION partition_spec, PARTITION partition_spec,...;

以下查询是用来删除分区:

hive> ALTER TABLE employee DROP [IF EXISTS]
   > PARTITION (year=’1203’);

相关文章

  • HiveQL 数据定义:分区

    分区• 建立分区表• 增加分区• 重命名分区• 删除分区 hive组织表到分区。它是将一个表到基于分区列,如日期,...

  • Hive权威指南读书笔记0002

    第5章 HiveQL数据操作 在上一章中介绍了HiveQL的数据定义部分,所谓数据定义就是对数据库中表结构的增删改...

  • Hive编程指南学习笔记-持续更新

    HiveQL 数据定义 HiveQL 是Hive查询语言,不完成遵循任一种ANSI SQL标准的修订版。Hive ...

  • 2.HiveQL:数据定义

    HiveQL和SQL的区别 1.hive不支持行级插入操作,更新操作和删除操作。hive也不支持事务。 1.创建数...

  • HiveQL 数据定义:视图和索引

    分区• 创建视图• 删除视图• 创建索引• 删除索引 视图可以允许保存一个查询并且像对待表一样对待这个查询进行操作...

  • HiveQL 数据定义:表的删除

    DDL• 删除表• JDBC程序 删除表 以下查询删除一个名为 employee的表: 对于成功执行查询,能看到以...

  • HiveQL 数据定义:修改表结构

    修改表结构• Alter Table 语句• 重命名表• 修改列的名字、类型、位置、注释• 增加/更新列• 增加表...

  • HiveQL 数据定义:表的创建

    DDL• 建表• 建立外部表• 建立分区表• 建立Bucket表• 复制一个空表• 实例• JDBC程序 建表 C...

  • Hive数据定义

    Hive数据定义 HiveQL是Hive查询语言,作为ANSI SQL的一种方言。但是其还是有和关系数据库支持的S...

  • HiveQL: 数据定义之数据库操作

    Hive Data Definition Language(DDL) 1 创建数据库 如果不指定LOCATION参...

网友评论

      本文标题:HiveQL 数据定义:分区

      本文链接:https://www.haomeiwen.com/subject/kwglbftx.html