内部表&外部表
在Hive创建表的语法中有一个关键字是EXTERNAL,该关键字表示表的类型,在Hive中一共有两种类型的表:MANAGED_TABLE(内部表)和EXTERNAL_TABLE(外部表)。如果没有加EXTERNAL关键字,则创建表都是管理表,两种表有以下的区别:
- 在导入数据到外部表,数据并没有移动到自己的数据仓库目录下(如果指定了location的话),也就是说外部表中的数据并不是由Hive自己来管理的,而内部表则不一样,是由数据仓库来管理的;
- 在删除表的时候,Hive将会把属于表的元数据和数据全部删掉;而删除外部表的时候,Hive仅仅删除外部表的元数据,数据是不会删除的。
建表
CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name
[(col_name data_type [column_constraint_specification] [COMMENT col_comment], ...]
[COMMENT table_comment]
[PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]
[CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC],

本文详细介绍了Hive中的内部表和外部表的区别,包括数据管理、删除操作的不同。同时,讲解了Hive建表的语法,如ROW FORMAT SERDE、STORED AS、LOCATION和TBLPROPERTIES的使用,并探讨了各种数据存储格式,如TEXTFILE、SEQUENCEFILE、RCFILE、ORC和PARQUET。此外,还展示了如何加载数据到Hive表中以及LOAD DATA的不同模式。最后,通过实战示例演示了建表、加载数据和删除表的过程。
最低0.47元/天 解锁文章
507

被折叠的 条评论
为什么被折叠?



