Hive 增删改查操作指南

目录 创建表 (CREATE TABLE) 插入数据 (INSERT) 查询数据 (SELECT) 更新数据 (UPDATE) 删除数据 (DELETE)

目录

  1. 创建表 (CREATE TABLE)
  2. 插入数据 (INSERT)
  3. 查询数据 (SELECT)
  4. 更新数据 (UPDATE)
  5. 删除数据 (DELETE)
  6. 删除表 (DROP TABLE)

创建表 (CREATE TABLE)

在 Hive 中创建表需要指定表的结构,包括表名、列名、数据类型、分区等。

示例:创建一个简单的表

CREATE TABLE employees (
    id INT,
    name STRING,
    salary FLOAT,
    department STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ',';

示例:创建带有分区的表

CREATE TABLE employees_partitioned (
    id INT,
    name STRING,
    salary FLOAT
)
PARTITIONED BY (department STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ',';

插入数据 (INSERT)

Hive 支持从查询结果中插入数据,也可以通过 LOAD DATA 命令直接从文件加载数据。

示例:插入数据到表中

INSERT INTO TABLE employees
VALUES (1, 'John Doe', 5000.0, 'HR');

示例:从查询结果插入数据

INSERT INTO TABLE employees
SELECT id, name, salary, department FROM temp_employees;

示例:加载外部文件数据

LOAD DATA LOCAL INPATH '/path/to/local/file'
INTO TABLE employees;

查询数据 (SELECT)

Hive 的查询语法类似于 SQL,支持多种查询操作。

示例:简单查询

SELECT * FROM employees;

示例:条件查询

SELECT name, salary
FROM employees
WHERE department = 'HR';

示例:分组查询

SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department;

更新数据 (UPDATE)

注意:Hive 本身不支持原生的 UPDATE 操作。如果需要更新数据,通常需要创建一个新的数据集,或者使用 INSERT OVERWRITE 来覆盖数据。

示例:使用 INSERT OVERWRITE 进行类似更新的操作

INSERT OVERWRITE TABLE employees
SELECT id, name, salary, department
FROM employees
WHERE id != 2
UNION ALL
SELECT 2, 'Jane Smith', 7000.0, 'HR'
WHERE NOT EXISTS (SELECT 1 FROM employees WHERE id = 2);

删除数据 (DELETE)

注意:Hive 本身不支持原生的 DELETE 操作。如果需要删除数据,通常需要创建一个新的数据集,或者使用 INSERT OVERWRITE 来覆盖数据。

示例:使用 INSERT OVERWRITE 进行类似删除的操作

INSERT OVERWRITE TABLE employees
SELECT * FROM employees
WHERE id != 1;

删除表 (DROP TABLE)

删除表将会删除表的结构和所有数据。

示例:删除表

DROP TABLE employees;
LICENSED UNDER CC BY-NC-SA 4.0