Hologres的文件合并(Compaction)任务通常会占用实例的计算资源,可能影响其他读写请求。自Hologres V3.1.11版本起,支持在使用Serverless资源执行数据导入的同时,利用同一份Serverless资源同步完成Compaction操作,从而避免占用实例计算资源,保障其他任务的性能。
使用方法
-- Session级别使用
SET hg_serverless_computing_run_compaction_before_commit_bulk_load = on;
-- User级别使用
ALTER USER "<role_name>" IN DATABASE <db_name> SET hg_serverless_computing_run_compaction_before_commit_bulk_load = on;
-- DB级别使用
ALTER DATABASE <db_name> SET hg_serverless_computing_run_compaction_before_commit_bulk_load = on;
使用限制:
该功能会少量增加数据导入时长,但可极大提升实例稳定性。
仅支持对新数据文件的同步Compaction。如果表存在旧文件TTL过期需Compaction清理文件,仍会使用本实例资源异步执行。
同步Compaction仅支持导入热存(标准存储),暂不支持导入冷存(低频访问存储)。
使用示例
通过HoloWeb一键导入公共数据集功能,导入TPC-H 100 GB数据集。
DB级别关闭本功能,而后执行公共数据集导入任务。
ALTER DATABASE <db_name> SET hg_serverless_computing_run_compaction_before_commit_bulk_load = off;
DB级别开启本功能,再次执行同一个公共数据集导入任务。
ALTER DATABASE <db_name> SET hg_serverless_computing_run_compaction_before_commit_bulk_load = on;
两次导入任务均完成后,观察实例的监控指标,可见导入任务在正常使用Serverless计算资源执行,同时Compaction任务完全没有使用本实例计算组的计算资源。
计算组CPU使用率
导入任务QPS
Serverless Computing资源使用率
该文章对您有帮助吗?