创建数据库
```sql
CREATE DATABASE IF NOT EXISTS mydb;
```
修改数据库
Hive 不支持直接修改数据库,但您可以更改数据库的属性。例如,更改数据库的注释:
```sql
ALTER DATABASE mydb SET DBPROPERTIES ('edited_by'='user_name');
```
删除数据库
```sql
DROP DATABASE IF EXISTS mydb;
```
创建表
```sql
CREATE TABLE IF NOT EXISTS mydb.mytable (
column1 STRING,
column2 INT
)
COMMENT 'This is a simple table'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
STORED AS TEXTFILE;
```
修改表
添加列:
```sql
ALTER TABLE mydb.mytable ADD COLUMNS (new_column INT);
```
修改列:
Hive 不支持直接修改列,但可以通过以下步骤间接实现:
1. 创建一个新表,包含修改后的列。
2. 将旧表的数据插入到新表中。
3. 删除旧表。
4. 将新表重命名为旧表的名称。
创建分区
```sql
ALTER TABLE mydb.mytable ADD PARTITION (part_column='value1') LOCATION '/path/to/partition/value1';
```
修改分区
重命名分区:
```sql
ALTER TABLE mydb.mytable PARTITION (part_column='value1') RENAME TO PARTITION (part_column='value2');
```
删除分区
```sql
ALTER TABLE mydb.mytable DROP IF EXISTS PARTITION (part_column='value1');
```
桶(Bucketing)
创建带桶的表:
```sql
CREATE TABLE mydb.mytable (
column1 STRING,
column2 INT
)
CLUSTERED BY (column2) INTO 4 BUCKETS
STORED AS ORC;
```
修改桶的数量:
Hive 不支持直接修改桶的数量。您需要重新创建表并指定新的桶数,然后重新加载数据。
删除桶的信息(这不删除数据,只是删除桶的信息):
Hive 不支持直接删除桶的信息。您需要重新创建表并重新加载数据。