一、描述
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 或 DELIMITED 使用原生 SerDe |
| STORED AS | 文件存储格式 | TEXTFILE、ORC、PARQUET 等 |
| TBLPROPERTIES | 表属性键值对 | 如 created.by.user、owner 等元数据属性 |
| LOCATION | 存储路径 | 表数据的目录路径;指定 LOCATION 则创建外部表(EXTERNAL) |
四、示例
— 创建源表CREATE EXTERNAL TABLE source_table_like (id INT, name STRING, age INT) USING PARQUET LOCATION 'cosn://<your_cos_bucket>/test_create_table_like/source_table_like';– CREATE TABLE LIKE + LOCATION(默认数据源)CREATE TABLE like_t1 LIKE source_table_like LOCATION 'cosn://<your_cos_bucket>/test_create_table_like/like_t1';– CREATE TABLE LIKE + USING CSV + LOCATIONCREATE TABLE like_t2 LIKE source_table_like USING CSV LOCATION 'cosn://<your_cos_bucket>/test_create_table_like/like_t2';– IF NOT EXISTSCREATE TABLE IF NOT EXISTS like_t1 LIKE source_table_like LOCATION 'cosn://<your_cos_bucket>/test_create_table_like/like_t1';– CREATE TABLE LIKE + ROW FORMAT + STORED AS + LOCATIONCREATE TABLE like_t3 LIKE source_table_like ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE LOCATION 'cosn://<your_cos_bucket>/test_create_table_like/like_t3';– DESC 验证DESC TABLE EXTENDED like_t1;DESC TABLE EXTENDED like_t2;