CREATE TABLE LIKE
描述
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 using an existing table
CREATE TABLE Student_Dupli like Student;
-- Create table like using a data source
CREATE TABLE Student_Dupli like Student USING CSV;
-- Table is created as external table at the location specified
CREATE TABLE Student_Dupli like Student location '/root1/home';
-- Create table like using a rowformat
CREATE TABLE Student_Dupli like Student
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE
TBLPROPERTIES ('owner'='xxxx');