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 ]
参数
-
表标识符
指定一个表名,该表名可以选择性地使用数据库名进行限定。
语法:
[ database_name. ] table_name
-
USING 数据源
数据源是用于创建表的输入格式。数据源可以是 CSV、TXT、ORC、JDBC、PARQUET 等。
-
行格式
SERDE 用于指定自定义 SerDe 或 DELIMITED 子句,以便使用原生 SerDe。
-
存储为
表的存储文件格式,可以是 TEXTFILE、ORC、PARQUET 等。
-
表属性
指定了必须设置的表属性,例如
created.by.user
、owner
等。 -
位置
表数据存储目录的路径,可以是 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');