描述
CREATE TABLE 语句使用现有表或视图的定义/元数据来定义一个新表。语法
CREATE TABLE [IF NOT EXISTS] table_identifier LIKE source_table_identifierUSING 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_likeLOCATION 'cosn://<your_cos_bucket>/test_create_table_like/like_t1';-- CREATE TABLE LIKE + USING CSV + LOCATIONCREATE TABLE like_t2 LIKE source_table_likeUSING CSVLOCATION 'cosn://<your_cos_bucket>/test_create_table_like/like_t2';-- IF NOT EXISTSCREATE TABLE IF NOT EXISTS like_t1 LIKE source_table_likeLOCATION 'cosn://<your_cos_bucket>/test_create_table_like/like_t1';-- CREATE TABLE LIKE + ROW FORMAT + STORED AS + LOCATIONCREATE TABLE like_t3 LIKE source_table_likeROW FORMAT DELIMITED FIELDS TERMINATED BY ','STORED AS TEXTFILELOCATION 'cosn://<your_cos_bucket>/test_create_table_like/like_t3';-- DESC 验证DESC TABLE EXTENDED like_t1;DESC TABLE EXTENDED like_t2;