分桶操作
分桶的基本概念及注意事项
分桶是将数据集分解成更容易管理的若干部分的另一个技术。
桶表也是一种用于优化查询而设计的表类型:
• 桶是Hive中另一种将数据切分为更小的数据段的方式。
• 在使用桶时,每个桶是一个文件,存储有实际的数据(基于一个哈希算法所 分布的: 同一类型的key的数据,总是被放到同一个桶中).
• 桶并不需要向表添加一个虚拟列。
•创建通表时,指定桶的个数、分桶的依据字段,hive就可以自动将数据分桶存储。
• 查询时只需要遍历一个桶里的数据,或者遍历部分桶,这样就提高了查询效 率。
因为在HDFS 上存储时,一个桶存入一个文件中,这样根据clustered by 字段进行查询时,可以快速确定数据存在于哪个桶中,而只遍历一个桶可以 提供查询效率。
分桶的实例操作
准备student.txt文件
放在/home/hduser/hive-data下
创建一个数据库stu
使用数据库stu
先建一个普通的stu表
向普通的stu表中导入数据
创建分桶表
导入数据到分桶表,通过子查询的方式