Hive里的分区、分桶、视图和索引再谈

福利 => 每天都推送 

欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑         Java全栈大联盟
 
     每天都有大量的学习视频资料和精彩技术文章推送... 人生不易,唯有努力。
 
     百家号 :九月哥快讯               快手号:  jiuyuege
 
 
 
 

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

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

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

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

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

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

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

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

 

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

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

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

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

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

理解MySQL——索引与优化

欢迎大家,加入我的4个微信公众号:    大数据躺过的坑     Java从入门到架构师    人工智能躺过的坑     Java全栈大联盟    
 
 
 

同时,大家可以关注我的个人博客

   http://www.cnblogs.com/zlslch/   和     http://www.cnblogs.com/lchzls/      http://www.cnblogs.com/sunnyDream/   

   详情请见:http://www.cnblogs.com/zlslch/p/7473861.html

  人生苦短,我愿分享。本公众号将秉持活到老学到老学习无休止的交流分享开源精神,汇聚于互联网和个人学习工作的精华干货知识,一切来于互联网,反馈回互联网。
  目前研究领域:大数据、机器学习、深度学习、人工智能、数据挖掘、数据分析。 语言涉及:Java、Scala、Python、Shell、Linux等 。同时还涉及平常所使用的手机、电脑和互联网上的使用技巧、问题和实用软件。 只要你一直关注和呆在群里,每天必须有收获

      对应本平台的讨论和答疑QQ群:大数据和人工智能躺过的坑(总群)(161156071) 

 

 

 

     打开百度App,扫码,精彩文章每天更新!欢迎关注我的百家号: 九月哥快讯

原文地址:https://www.cnblogs.com/zlslch/p/6602437.html