Hive入门的个人总结(hive中都有什么,都干了什么:理论)

hive数据分为哪两种类型:

    hive的数据分为表数据和元数据,表数据存储在HDFS上的数据,元数据是用来存储表的名字,表的列和分区及其属性的,存储在关系型数据库中

表:hive中的表和关系型数据库的表基本相同,每个表在HDFS上是以目录的方式来体现存储表数据的,

这个路径可以在 hive-site.xml中   hive.metastore.warehouse.dir 属性来配置,默认的话是:/user/hive/warehouse/xx目录
xx表所有的数据都会存储在这个目录下


外部表:Hive中的外部表和表很相似,但是其数据并不是放在自己表所属目录中的,而实存放在别处,
这样的好处就是如果你删除这个外部表的话,该表所指向的数据是不会被删除掉的。只会删除该外部表所对应的元数据。
如果你删除的不是外部表而是表的话,那么该表对应的数据包括元数据都会被删除掉。


分区: 在hive中,表的每一个分区都对应表的相应目录,所有的分区数据都是存储在对应的目录中。
比如  a1表有 d1和d2两个分区,d1=20180814,d2=BJ对应表的目录为/user/hive/warehouse/dt=20180814/d2=BJ,
所有属于这个分区的数据都存储在这个目录中。


桶:对指定的列计算其hash,根据hash值切分数据,目的是为了并行,每一个桶对应一个文件(注意桶和分区的区别)
比如a1表id列分散至16个桶中,首先对id列的值计算hash,对应hash值为0和16的数据存储的HDFS目录为:
/user/hive/warehouse/a1/part-00000;而hash值为2的数据存储的HDFS目录为:/user/hive/warehouse/a1/part-00002        

你可能感兴趣的:(Hive)