Iceberg Procedures
StarRocks Iceberg Catalog 支持多种用于管理 Iceberg 表的存储过程,包括快照管理、分支管理、数据维护、元数据管理和表管理。
您必须具有相应的权限才能执行存储过程。有关权限的更多信息,请参见 Privileges 。
快照管理
回滚到快照
将表回滚到特定快照。此操作将表的当前快照设置为指定的快照 ID。
rollback_to_snapshot 语法
ALTER TABLE [catalog.][database.]table_name
EXECUTE rollback_to_snapshot(<snapshot_id>)
Parameters
snapshot_id: 您想要回滚到的快照 ID。
示例
将表回滚到 ID 为 98765 的快照:
ALTER TABLE iceberg.sales.order
EXECUTE rollback_to_snapshot(98765);
选择快照
选择特定的快照并将其应用到表的当前状态。此操作基于现有快照创建一个新快照,而原始快照保持不变。
cherrypick_snapshot 语法
ALTER TABLE [catalog.][database.]table_name
EXECUTE cherrypick_snapshot(<snapshot_id>)
Parameters
snapshot_id: 您要进行 cherry pick 的快照的 ID。
示例
ALTER TABLE iceberg.sales.order
EXECUTE cherrypick_snapshot(54321);
分支管理
将一个分支快速前移到另一个分支
将一个分支快速前移到另一个分支的最新快照。此操作会将源分支的快照更新为与目标分支的快照相匹配。
fast_forward 语法
ALTER TABLE [catalog.][database.]table_name
EXECUTE fast_forward('<from_branch>', '<to_branch>')
参数
from_branch: 您想要快进的分支。用引号将分支名称引起来。to_branch: 您想要将from_branch快进到的分支。用引号将分支名称引起来。
示例
将 main 分支快进到 test-branch 分支:
ALTER TABLE iceberg.sales.order
EXECUTE fast_forward('main', 'test-branch');
数据维护
重写数据文件
重写数据文件以优化文件布局。此过程合并小文件,以提高查询性能并减少元数据开销。
rewrite_data_files 语法
ALTER TABLE [catalog.][database.]table_name
EXECUTE rewrite_data_files
("key"=value [,"key"=value, ...])
[WHERE <predicate>]