hive内部表、外部表、分区
hive内部表、外部表、分区 内部表(managed table) 默认创建的是内部表(managed table),存储位置在 hive.metastore.warehouse.dir 设置,默认位置是 /user/hive/warehouse 。 导入数据的时候是将文件剪切(移动)到指定位置,即原有路径下文件不再存在 删除表的时候,数据和元数据都将被删除 默认创建的就是内部表 create table xxx (xx xxx) 外部表(external table) 外部表文件可以在外部系统上,只要有访问权限就可以 外部表导入文件时不移动文件,仅仅是添加一个metadata 删除外部表时原数据不会被删除 分辨外部表内部表可以使用 DESCRIBE FORMATTED table_name 命令查看 创建外部表命令添加一个external即可,即 create external table xxx (xxx) 外部表指向的数据发生变化的时候会自动更新,不用特殊处理 表分区(Partitioned table) 有些时候数据是有组织的,比方按日期/类型等分类,而查询数据的时候也经常只关心部分数据,比方说我只想查2017年8月8号,此时可以创建分区 使用 partioned by (xxx) 来创建表的分区,比方说 create table table_name ( id int,