建表语法:
CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name
[(col_name data_type [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], …)] INTO num_buckets BUCKETS]
[ROW FORMAT row_format]
[STORED AS file_format]
[LOCATION hdfs_path]
1.EXTERNAL 关键字 外部的
决定建表的类型
hive中的表分为两种类型
1)内部表(管理表)MANAGED_TABLE
2)外部表 EXTERNAL_TABLE
建表的时候指定这个关键字 则证明建的表是外部表 否则是内部表
内部表和外部表的区别:
最主要的一个区别 就是数据删除的时候
内部表是元数据和数据一起删除
外部表只删除元数据 原始数据不会被删除
一般情况下对于一些需要共享数据的表 一定需要建外部表
一般情况下内部表在建表的时候使用默认路径就可以了
外部表在建表的时候一般情况下需要指定表的数据存储目录为原始数据的存储目录
2.IF NOT EXISTS 忽略异常的语句
建表的时候如果添加上 如果表存在 则不