📜  Impala-创建表语句(1)

📅  最后修改于: 2023-12-03 15:01:23.140000             🧑  作者: Mango

Impala - 创建表语句

Impala 是一个快速的分布式 SQL 查询引擎,被广泛应用于处理大规模的数据集。在 Impala 中,您可以通过执行 CREATE TABLE 语句来创建新的表。

语法

创建表的一般语法如下:

CREATE TABLE [IF NOT EXISTS] table_name
(
    column1 data_type [column_constraint],
    column2 data_type [column_constraint],
    ...
)
[COMMENT 'description']
[PARTITIONED BY (partition_column data_type [COMMENT 'description'], ...)]
[ROW FORMAT delimited
    [FIELDS TERMINATED BY 'delimiter']
    [COLLECTION ITEMS TERMINATED BY 'delimiter']
    [MAP KEYS TERMINATED BY 'delimiter']
    [LINES TERMINATED BY 'delimiter']]
[STORED AS file_format]
[TBLPROPERTIES ('key1'='value1', 'key2'='value2', ...)];
  • IF NOT EXISTS (可选):表示如果表已经存在,则不会创建新表。
  • table_name:要创建的表的名称。
  • column1, column2, ...:表的列定义。每个列都包含名称和数据类型,可以选择添加列约束。
  • COMMENT (可选):表的描述信息。
  • PARTITIONED BY (可选):按照指定的列创建分区。分区可以提高查询性能。
  • ROW FORMAT (可选):指定行的格式,例如使用特定的分隔符分隔字段。
  • STORED AS (可选):指定表的存储格式,例如 Parquet、Avro 和 Text。
  • TBLPROPERTIES (可选):用于指定表的其他属性。
示例

以下是一个创建名为 employees 的表的示例:

```sql
CREATE TABLE IF NOT EXISTS employees
(
    id INT,
    name STRING,
    age INT,
    department STRING
)
COMMENT '员工信息表'
PARTITIONED BY (department STRING)
ROW FORMAT DELIMITED
    FIELDS TERMINATED BY ','
    LINES TERMINATED BY '\n'
STORED AS PARQUET
TBLPROPERTIES ('creator'='admin', 'created_at'='2022-08-01');

在上面的示例中,我们创建了一个名为 `employees` 的表,该表包含 `id`、`name`、`age` 和 `department` 四个列。其中 `department` 列用于创建分区。行的格式为 CSV,字段之间用逗号分隔,行之间用换行符分隔。表存储格式为 Parquet,并指定了一些表属性。

您可以根据需要修改表的定义和属性,以适应您的数据模型和查询需求。

希望这个简要介绍能够帮助您在 Impala 中创建表。请参考 Impala 文档以获取更多详细信息。