大数据学习笔记-------------------(24)
来源:互联网 发布:vb中app.path 编辑:程序博客网 时间:2024/06/06 07:37
第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')
0 0
- 大数据学习笔记-------------------(24)
- Oracl大数据学习笔记
- 大数据学习笔记1
- 大数据学习笔记历程
- 大数据学习笔记1
- 大数据系统学习笔记
- 大数据学习笔记-------------------(1)
- 大数据学习笔记-------------------(2)
- 大数据学习笔记-------------------(3)
- 大数据学习笔记-------------------(4)
- 大数据学习笔记-------------------(5)
- 大数据学习笔记-------------------(6)
- 大数据学习笔记-------------------(7)
- 大数据学习笔记-------------------(8)
- 大数据学习笔记-------------------(9)
- 大数据学习笔记-------------------(10)
- 大数据学习笔记-------------------(11)
- 大数据学习笔记-------------------(13)
- JAVA代码实现远程服务器的文件操作
- css3中的display:-webkit-box的用法
- 内存分配中堆和栈的区别
- java厚积薄发之unicode与utf-8的区别
- Unity 技能冷却使用的两种倒计时
- 大数据学习笔记-------------------(24)
- shell_makeflie
- tinyhttpd源码详解
- 理解OAuth2.0
- NFQUEUE抓包
- Visual Studio里面的搜索和浏览的一些技巧
- 扫描js
- javascript函数直接量(function(){})()
- JAVA代码实现远程服务器的文件操作