大数据学习笔记-------------------(24)

网友投稿 196 2022-11-18

大数据学习笔记-------------------(24)

第24章分区

Hive组织table进入分区。该方法是把一个表分层相关的部分,每个部分基于分区列的值,如日期、城市、部门等。用分区,很容易查询一部分数据。

表(Table) 或分区(Partition)被细分成桶(buckets),为了提供额外的结构,该结构使数据可以用于更有效的查询。buckets工作是基于表的某列的哈希函数值。

例如,Tab1表包含employee数据例如id、name、dept、yoj(year ofjoining)。假设需要检索2012年加入所有的employee的详细信息。查询语句在整个表中搜索所需的信息。然而,如果按年份对员工数据进行划分,并将其存储在单独的文件中,它减少了查询处理时间。下面一个例子,显示如何分割文件及其数据:

如下文件,包含employee数据表:

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

创建并插入数据到employee:

按年份把上面的数据分进两个文件内:

/tab1/employeedata/2012/file2 1, gopal, TP, 2012 2, kiran, HR, 2012

/tab1/employeedata/2013/file3 3, kaleel,SC, 2013 4, Prasanth, SC, 2013

24.1添加分区(Adding a Partition)

通过修改table来添加分区到table中。假设有表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表添加一个分区:

ALTER TABLE employee ADD PARTITION (year='2013') location '/2012/part2012';

24.2 重命名分区(Renaminga Partition)

ALTER TABLE table_name PARTITION partition_spec RENAME TO PARTITION partition_spec;

实例:

ALTER TABLE employee PARTITION (year='1203') RENAME TO PARTITION (yoj='1203');

24.3 删除分区(Dropinga Partition)

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

实例:

ALTER TABLE employee DROP [IF EXISTS] PARTITION (year='1203')

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Token登陆验证机制的原理及实现
下一篇:瑞苏盈科Zynq UltraScale+ MPSoC开发套件助您大幅缩短FPGA设计导入时间
相关文章

 发表评论

暂时没有评论,来抢沙发吧~