This DataSource syntax can be 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 | CREATE TABLE [IF NOT EXISTS] [db_name.]table_name [(col_name1 col_type1 [COMMENT col_comment1], ...)] USING file_format [OPTIONS (key1=val1, key2=val2, ...)] [PARTITIONED BY (col_name1, col_name2, ...)] [COMMENT table_comment] [AS select_statement]; |
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 |
file_format |
Data storage format of DLI tables. The value can be parquet only. |
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. |
Parameter |
Description |
Default Value |
---|---|---|
multiLevelDirEnable |
Whether to iteratively query data in subdirectories. When this parameter is set to true, all files in the table path, including files in subdirectories, are iteratively read when a table is queried. |
false |
compression |
Specified compression format. Generally, you need to set this parameter to zstd for parquet files. |
- |
1 | CREATE TABLE src(key INT, value STRING) USING PARQUET OPTIONS(compression = 'zstd'); |
1 | CREATE TABLE student(name STRING, score INT, classNo INT) USING PARQUET OPTIONS('key1' = 'value1') PARTITIONED BY(classNo) ; |
classNo is the partition field, which must be placed at the end of the table field, that is, student(name STRING, score INT, classNo INT).
1 | CREATE TABLE t1 USING parquet AS select * from t2; |