使用HQL创建内部表、外部表的基本操作。创建表主要有以下三种方式:
- 自定义表结构,以关键字EXTERNAL区分创建内部表和外部表。
如何确定是创建内部表还是外部表
内部表,如果对数据的处理都由Hive完成,则应该使用内部表。在删除内部表时,元数据和数据一起被删除。
外部表,如果数据要被多种工具(如Pig等)共同处理,则应该使用外部表,可避免对该数据的误操作。删除外部表时,只删除掉元数据。
根据已有表创建新表,使用CREATE LIKE句式,完全复制原有的表结构,包括表的存储格式。
根据查询结果创建新表,使用CREATE AS SELECT句式。
这种方式比较灵活,可以在复制原表表结构的同时指定要复制哪些字段,不包括表的存储格式。
在启用了安全服务的集群中执行如下操作,需要在数据库中CREATE权限,使用CREATE AS SELECT句式创建表,需要对SELECT查询的表具有SELECT权限。详情请参见概述。