ByteHouse 云数仓版支持唯一表 Unique Table 和普通表。其中唯一表支持通过 Delete Flag 对单条数据进行删除,而普通表不支持删除单条数据,仅支持删除分区下的数据。因此,需要删除普通表中的数据时,可以通过删除该数据所在的分区,再进行重新导入的方式实现。
本文通过 cell_tower 数据为例,介绍分区删除的两种方式,cell_tower 的建表和数据导入可以参考样本数据 进行准备。
在 cell_tower 数据导入后,查看对应的数据库表(元数据可能有 5 分钟的刷新延迟),可以看到分区统计信息。本数据表使用的是按每月的第一天进行月度分区。可以通过筛选条件对分区键进行细粒度搜索。
选择具体的分区键,在右上角删除数据,二次确认后即可删除对应的分区。
您可根据表和分区的情况,执行以下 SQL 删除分区。
unique 表
删除分区命令 | 功能说明 |
---|---|
alter drop partition语句(推荐) | 删除分区,支持所有表,底层直接删除目录,性能好,建议优先使用。
|
delete 语句(不推荐) | 删除数据为同步删除,底层是先查再删除,是追加文件的方式删除,消耗性能,并且只支持unique表。
|
非unique表
删除分区命令 | 功能说明 |
---|---|
alter drop partition语句(推荐) | 删除分区,支持所有表,底层直接删除目录,性能好,建议优先使用。
|
alter delete(不推荐) | 删除数据为异步删除,不支持unique表。
|