在Hive中,你可以使用CREATE TABLE
語句來創建一個新表
CREATE TABLE table_name (
column1 data_type,
column2 data_type,
...
);
例如,創建一個名為employees
的表,包含id
(INT類型)、name
(STRING類型)和age
(INT類型)三個列:
CREATE TABLE employees (
id INT,
name STRING,
age INT
);
LIKE
關鍵字創建一個與現有表結構相同的表:CREATE TABLE table_name LIKE existing_table;
例如,創建一個與employees
表結構相同的表new_employees
:
CREATE TABLE new_employees LIKE employees;
IF NOT EXISTS
選項,如果表已經存在,則不會創建新表,也不會報錯:CREATE TABLE IF NOT EXISTS table_name (
column1 data_type,
column2 data_type,
...
);
例如,創建一個名為employees_backup
的表,如果employees
表已經存在,則不會創建新表:
CREATE TABLE IF NOT EXISTS employees_backup (
id INT,
name STRING,
age INT
);
PARTITIONED BY
選項,根據指定的列對表進行分區:CREATE TABLE table_name (
column1 data_type,
column2 data_type,
...
) PARTITIONED BY (partition_column1 data_type, partition_column2 data_type, ...);
例如,創建一個名為sales
的表,包含id
(INT類型)、product
(STRING類型)和amount
(BIGINT類型)三個列,并根據product
列進行分區:
CREATE TABLE sales (
id INT,
product STRING,
amount BIGINT
) PARTITIONED BY (product STRING);
CLUSTERED BY
和SORTED BY
選項對表進行排序:CREATE TABLE table_name (
column1 data_type,
column2 data_type,
...
) CLUSTERED BY (cluster_column) SORTED BY (sort_column1 [ASC|DESC], sort_column2 [ASC|DESC], ...);
例如,創建一個名為orders
的表,包含id
(INT類型)、customer_id
(INT類型)和total_amount
(BIGINT類型)三個列,并根據customer_id
列進行聚類,然后根據total_amount
列降序排序:
CREATE TABLE orders (
id INT,
customer_id INT,
total_amount BIGINT
) CLUSTERED BY (customer_id) SORTED BY (total_amount DESC);
這些是創建Hive表時常用的一些選項。你可以根據需要組合使用這些選項來創建適合你需求的表。