数据湖探索 DLI-删除分区:示例
示例
为了便于理解删除分区语句的使用方法,本节示例为您提供源数据,基于源数据提供删除分区的操作示例。
- 使用DataSource语法创建一个OBS表分区表。
创建了一个名为student的OBS分区表,表中有学生学号(id),学生姓名(name),学生院系编号(facultyNo)和学生班级编号(classNo),该表使用学生院系编号(facultyNo)和学生班级编号(classNo)进行分区。
1 2 3 4 5 6 7 8
create table if not exists student ( id int, name STRING, facultyNo int, classNo INT) using csv options (path 'obs://bucketName/filePath') partitioned by (faculytNo, classNo);
- 在表格中插入分区数据。
利用插入数据中的内容,可以插入以下数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
INSERT into student partition (facultyNo = 10, classNo = 101) values (1010101, "student01"), (1010102, "student02"); INSERT into student partition (facultyNo = 10, classNo = 102) values (1010203, "student03"), (1010204, "student04"); INSERT into student partition (facultyNo = 20, classNo = 101) values (2010105, "student05"), (2010106, "student06"); INSERT into student partition (facultyNo = 20, classNo = 102) values (2010207, "student07"), (2010208, "student08"); INSERT into student partition (facultyNo = 20, classNo = 103) values (2010309, "student09"), (2010310, "student10"); INSERT into student partition (facultyNo = 30, classNo = 101) values (3010111, "student11"), (3010112, "student12"); INSERT into student partition (facultyNo = 30, classNo = 102) values (3010213, "student13"), (3010214, "student14");
- 查看分区。
利用查看指定表所有分区中的内容,可以查看相关的分区内容。
示例代码如下:
SHOW partitions student;
表2 表数据示例 facultyNo
classNo
facultyNo=10
classNo=101
facultyNo=10
classNo=102
facultyNo=20
classNo=101
facultyNo=20
classNo=102
facultyNo=20
classNo=103
facultyNo=30
classNo=101
facultyNo=30
classNo=102
- 删除分区。
- 示例1:指定多个筛选条件删除分区
本示例删除facultyNo为20,classNo为103的分区;
如需按指定筛选条件删除分区请参考指定筛选条件删除分区(只支持OBS表)。
示例代码如下:
ALTER TABLE student DROP IF EXISTS PARTITION (facultyNo=20, classNo=103);
重新利用第三步中的方法查看表中的分区,可以看到该分区被删除:
SHOW partitions student;
- 示例2:指定单个筛选条件删除分区
本示例删除facultyNo为30的分区;在插入数据的过程中可以了解到,facultyNo为30的分区有两个。
如需按指定筛选条件删除分区请参考指定筛选条件删除分区(只支持OBS表)。
示例代码如下:
ALTER TABLE student DROP IF EXISTS PARTITION (facultyNo = 30);
执行后结果:
表3 表数据示例 facultyNo
classNo
facultyNo=10
classNo=101
facultyNo=10
classNo=102
facultyNo=20
classNo=101
facultyNo=20
classNo=102
facultyNo=20
classNo=103
- 示例1:指定多个筛选条件删除分区