首页 > 代码库 > Hive里的分区和分桶再谈

Hive里的分区和分桶再谈

 

 

   分桶是细粒度的,分桶是不同的文件

  分区是粗粒度的,即相当于,表下建立文件夹。分区是不同的文件夹

 

桶在对指定列进行哈希计算时,会根据哈希值切分数据,使每个桶对应一个文件。

  里面的id是哈希值,分过来的。

 

分桶,一般用作数据倾斜和数据抽样方面。由此,可看出是细粒度。

 

 

  Hive 中创建分区表没有什么复杂的分区类型(范围分区、列表分区、hash 分区,混合分区等)。分区列也不是表中的一个实际的字段,而是一个或者多个伪列。意思是说,在表的数据文件中实际并不保存分区列的信息与数据。

 

 

 

注意:普通表(外部表、内部表)、分区表这三个都是对应HDFS上的目录,桶表对应是目录里的文件

 

 

 

 

 索引是为了提高查询速度的,视图是在查询sql的基础上的。 
 对一个表来说,视图是横向的,一般创建视图查询语句都要加条件的 
 
 
 索引是作用列上面的 
 
   拿索引来说,在某列上建立索引,得到的这个索引表,其实是原来的表而已。只是取了个新名字。
因为在建立了索引
包装了一下 

 

   视图是指计算机数据库中的视图,是一个虚拟表,即不是实实在在的,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。

   一般情况,是多表关联查询的时候,才用视图 

   对一个表来说,视图是横向的,一般创建视图查询语句都要加条件的 
   索引是作用列上面的 

   索引是为了提高查询速度的,视图是在查询sql的基础上的。

   比如一个表很多字段,你查询的时候,只是想取得其中一部分字段,并且包含一些特定条件的数据 ,这个时候最好用视图。
 
 
 
 
 
 
 
mysql视图使用总结
 

理解MySQL——索引与优化

 

 

Hive里的分区和分桶再谈