以前は、コンパクションは専用型インスタンスのリソースを消費し、他のリクエストに影響を与えていました。V3.1.11 以降、サーバーレスリソースを使用するデータインポートタスクでコンパクションを処理できるようになりました。このアプローチにより、コンパクションに専用の計算資源を使用することを回避し、他の操作のパフォーマンスを保護します。
使用方法
-- セッションレベルで有効化
SET hg_serverless_computing_run_compaction_before_commit_bulk_load = on;
-- ユーザーレベルで有効化
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;制限事項:
このオプションはデータインポート時間をわずかに増加させますが、インスタンスの安定性を大幅に向上させます。
同時コンパクションは新しいデータファイルに限定されます。コンパクション中の古いデータのクリーンアップは、引き続き専用型インスタンスのリソースを使用します。
同時コンパクションは、ホットストレージ (標準ストレージ層) にインポートされたデータにのみ適用され、コールドストレージ (低頻度アクセス層) には適用されません。
使用例
HoloWeb の パブリックデータセットのインポート 機能を使用して、TPC-H 100 GB データセットをインポートします。
データベースレベルで同時コンパクションを無効にし、データインポートタスクを実行します。
ALTER DATABASE <db_name> SET hg_serverless_computing_run_compaction_before_commit_bulk_load = off;データベースレベルで同時コンパクションを有効にし、データインポートタスクを再度実行します。
ALTER DATABASE <db_name> SET hg_serverless_computing_run_compaction_before_commit_bulk_load = on;
両方のインポートタスクが完了したら、インスタンスのモニタリングメトリックを確認します。以下の図は、インポートタスクが期待どおりにサーバーレスリソースを使用し、コンパクションタスクがインスタンスの仮想ウェアハウスから専用リソースを消費しないことを示しています。
仮想ウェアハウスの CPU 使用率

インポートタスクの QPS

サーバーレスリソースの使用率
