This Hive syntax is used to create a DLI table. The main differences between the DataSource and the Hive syntax lie in the supported data formats and the number of supported partitions. For details, see syntax and precautions.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | CREATE TABLE [IF NOT EXISTS] [db_name.]table_name [(col_name1 col_type1 [COMMENT col_comment1], ...)] [COMMENT table_comment] [PARTITIONED BY (col_name2 col_type2, [COMMENT col_comment2], ...)] [ROW FORMAT row_format] STORED AS file_format [TBLPROPERTIES (key1=val1, key2=val2, ...)] [AS select_statement]; row_format: : SERDE serde_cls [WITH SERDEPROPERTIES (key1=val1, key2=val2, ...)] | DELIMITED [FIELDS TERMINATED BY char [ESCAPED BY char]] [COLLECTION ITEMS TERMINATED BY char] [MAP KEYS TERMINATED BY char] [LINES TERMINATED BY char] [NULL DEFINED AS char] |
For example, if the table storage format is Parquet, you can use TBLPROPERTIES(parquet.compression = 'zstd') to set the table compression format to zstd.
Parameter |
Description |
---|---|
db_name |
Database name that contains letters, digits, and underscores (_). The value cannot contain only digits and cannot start with a digit or underscore (_). |
table_name |
Table name of a database that contains letters, digits, and underscores (_). The value cannot contain only digits and cannot start with a digit or underscore (_). The matching rule is ^(?!_)(?![0-9]+$)[A-Za-z0-9_$]*$. If special characters are required, use single quotation marks ('') to enclose them. |
col_name |
Column names with data types separated by commas (,). The column name contains letters, digits, and underscores (_). It cannot contain only digits and must contain at least one letter. |
col_type |
Field type |
col_comment |
Field description |
row_format |
Line data format |
file_format |
Data storage format: TEXTFILE, AVRO, ORC, SEQUENCEFILE, RCFILE, PARQUET. |
table_comment |
Table description |
select_statement |
The CREATE TABLE AS statement is used to insert the SELECT query result of the source table or a data record to a newly created DLI table. |
1 2 3 4 | CREATE TABLE src (key INT, value STRING) STORED AS PARQUET TBLPROPERTIES('key1' = 'value1'); |
1 2 3 4 | CREATE TABLE student (name STRING, score INT) STORED AS PARQUET TBLPROPERTIES(parquet.compression = 'zstd') PARTITIONED BY(classNo INT); |
1 2 3 | CREATE TABLE t1 STORED AS PARQUET AS select * from t2; |