Hive的存储是建立在Hadoop文件系统之上的,Hive本身没有专门的数据存储格式,也不能为数据建立索引,因此可以自由的组织Hive中的表。在创建表的时候只需要告诉Hive数据中的列分隔符和行分隔符就可以解析数据。
Hive中主要包含四类数据模型:表,外部表,分区和桶。
(1)创建表的操作包含两个步骤:表创建过程和数据加载过程,一般情况下先创建表再加载数据,当然这两个过程也可以在同一个语句中完成。在数据加载过程中,实际的数据会移动到数据仓库的目录下,之后的数据访问会直接在数据仓库目录中完成。在删除表时,表中的数据和元数据将会被同时删除。
(2)外部表的创建只有一个步骤,加载数据和创建表同时完成,实际数据存储在创建语句LOCATION指定的HDFS路径中,并不会移动到数据仓库目录中。如果删除一个外部表,仅删除元数
Hive中主要包含四类数据模型:表,外部表,分区和桶。
表:
Hive中的表和数据库中的表在概念上是类似的,在Hive中每一个表都有一个对应的存储目录。在配置文件hive-site.xml中hive.metastore.warehouse.dir指定的就是数据仓库的目录,所有的表数据,除了外部表都保存在这个目录中。外部表:
外部表指向已经在HDFS中存在的数据,也可以对外部表创建分区。外部表和表在元数据的组织上是相同的,在实际数据的存储存在差异:(1)创建表的操作包含两个步骤:表创建过程和数据加载过程,一般情况下先创建表再加载数据,当然这两个过程也可以在同一个语句中完成。在数据加载过程中,实际的数据会移动到数据仓库的目录下,之后的数据访问会直接在数据仓库目录中完成。在删除表时,表中的数据和元数据将会被同时删除。
(2)外部表的创建只有一个步骤,加载数据和创建表同时完成,实际数据存储在创建语句LOCATION指定的HDFS路径中,并不会移动到数据仓库目录中。如果删除一个外部表,仅删除元数