在Hive中,创建表的完整语法包括以下部分:
- CREATE TABLE:关键字,用于创建新表。
- IF NOT EXISTS:可选子句,如果表已经存在,则不会执行创建操作。
- database_name.:指定要在哪个数据库中创建表。
- table_name:要创建的表的名称。
- (column_name data_type, column_name data_type, …):定义表的列及其数据类型。
- COMMENT ‘column_comment’:可选子句,用于为列添加注释。
- PARTITIONED BY (column_name data_type, column_name data_type, …):可选子句,用于指定分区列及其数据类型。
- CLUSTERED BY (column_name) [SORTED BY (column_name [ASC|DESC])] INTO num_buckets BUCKETS:可选子句,用于指定表的存储结构,包括分桶和排序方式。
- ROW FORMAT DELIMITED:可选子句,用于指定行的格式和分隔符。
- FIELDS TERMINATED BY ‘delimiter’:可选子句,用于指定字段之间的分隔符。
- STORED AS file_format:可选子句,用于指定表的文件存储格式。
- [LOCATION ‘path’]:可选子句,用于指定表的数据存储路径。
- TBLPROPERTIES (key1=value1, key2=value2, …):可选子句,用于为表添加元数据属性。
以下是一个创建表的示例:
CREATE TABLE IF NOT EXISTS employee (
id INT,
name STRING,
age INT,
salary FLOAT,
department STRING,
comment 'Employee information'
)
COMMENT 'Table to store employee data'
PARTITIONED BY (city STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
TBLPROPERTIES ('owner'='user1', 'created'='2022-01-01');
在这个示例中,我们创建了一个名为employee
的表,包含6个字段(id、name、age、salary、department和comment),并将其存储在employee
数据库中。表按照city
字段进行分区,使用逗号作为字段分隔符,并将数据存储为文本文件格式。最后,我们为表添加了元数据属性,包括所有者、创建日期等信息。