创建类似表
描述
该
CREATE TABLE
语句使用现有表或视图的定义/元数据定义新表。
语法
CREATE TABLE [IF NOT EXISTS] table_identifier LIKE source_table_identifier
USING data_source
[ ROW FORMAT row_format ]
[ STORED AS file_format ]
[ TBLPROPERTIES ( key1=val1, key2=val2, ... ) ]
[ LOCATION path ]
参数
-
table_identifier
指定一个表名,该表名可以选择性地带有数据库名称。
语法:
[ database_name. ] table_name -
USING data_source
数据源是用于创建表的输入格式。数据源可以是 CSV、TXT、ORC、JDBC、PARQUET 等。
-
ROW FORMAT
SERDE 用于指定自定义 SerDe 或 DELIMITED 子句以使用本地 SerDe。
-
STORED AS
表存储的文件格式,可以是 TEXTFILE、ORC、PARQUET 等。
-
TBLPROPERTIES
必须设置的表属性被指定,如
created.by.user、owner等。 -
LOCATION
存储表数据的目录路径,可以是像 HDFS 这样的分布式存储上的路径。用于创建外部表的位置。
示例
-- 使用现有表创建表
CREATE TABLE Student_Dupli like Student;
-- 使用数据源创建类似的表
CREATE TABLE Student_Dupli like Student USING CSV;
-- 表被创建为指定位置的外部表
CREATE TABLE Student_Dupli like Student location '/root1/home';
-- 使用行格式创建类似的表
CREATE TABLE Student_Dupli like Student
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE
TBLPROPERTIES ('owner'='xxxx');