Hologres は、詳細なリソース管理を提供します。CPU やメモリなどの計算リソース(Compute Units:CUs と呼ばれます)を異なるユーザーアカウントに割り当てることで、ユーザーが使用できる最大リソース量を制限し、単一のインスタンス内で複数のワークロードを隔離できます。これにより、異なるユーザーおよびアプリケーションからのタスクが互いに干渉しないようになります。本トピックでは、Hologres インスタンス内で計算リソースを管理し、リソース隔離を実現するためのリソースグループの使用方法について説明します。
背景情報
Hologres V1.0 以前のバージョンでは、インスタンス間のリソース隔離はサポートされていますが、インスタンス内のユーザー単位でのリソース隔離はサポートされていません。本番環境では、各ユーザーが使用できる最大リソース量を制限し、タスク同士が干渉しないようにするために、ユーザー単位でのリソース隔離が必要となることがよくあります。このような詳細なリソース隔離の要件に対応するため、Hologres では現在、インスタンス内の計算リソースを管理するリソースグループをサポートしています。ただし、現時点の技術的制約により、すべての種類の計算ワークロードをリソースグループで隔離できるわけではありません。本番環境でこの機能を使用する際は、十分に注意してください。完全なリソース隔離が必要な場合は、エラスティックコンピューティンググループインスタンスをご利用ください。
制限事項
-
Hologres インスタンス内の計算リソースをリソースグループで管理できるのは、Hologres V1.1 以降のバージョンのみです。ご利用のインスタンスが V1.1 より前のバージョンの場合、「スペックアップ準備時の一般的な失敗エラー」をご参照いただくか、Hologres DingTalk グループにご参加のうえフィードバックをお送りください。詳細については、「オンラインサポートをさらに利用する方法」をご参照ください。
-
Hologres インスタンス内の計算リソースをリソースグループで管理できるのは、Superuser 権限を持つユーザーのみです。それ以外のユーザーが操作すると、権限エラーが発生します。
-
計算リソースはインスタンス単位で割り当てられます。ユーザーが複数のデータベースを持っている場合、すべてのデータベースは同じインスタンスの計算リソースと同一のリソース割り当てプランを共有します。
HoloWeb UI を使用したリソースグループの設定
HoloWeb UI を使用して、以下の手順でリソースグループを設定できます。
-
リソースグループの作成
-
HoloWeb 開発者ページに移動します。詳細については、「HoloWeb への接続とクエリの実行」をご参照ください。
-
HoloWeb 開発者ページの上部メニューバーで、Security Center をクリックします。
-
Security Center ページの左側ナビゲーションウィンドウで、Resource Group Management をクリックします。
-
Resource Group Management ページで、対象のインスタンス名を選択し、Add Resource Group をクリックします。

-
Add Resource Group ダイアログボックスで、Resource Group Name を入力し、Resource Group Quota を設定して、OK をクリックしてリソースグループを作成します。
説明Hologres インスタンス内のすべてのリソースグループのクォータ合計は 1 を超えてはなりません。超えると、システムがエラーを報告します。
-
-
リソースグループの削除
-
HoloWeb 開発者ページに移動します。詳細については、「HoloWeb への接続とクエリの実行」をご参照ください。
-
HoloWeb 開発者ページの上部メニューバーで、Security Center をクリックします。
-
Security Center ページの左側ナビゲーションウィンドウで、Resource Group Management をクリックします。
-
Resource Group Management ページで、削除するリソースグループを探し、[操作] 列の Delete をクリックします。
説明ユーザーが関連付けられているリソースグループは削除できません。
-
-
リソースグループクォータの調整
-
HoloWeb 開発者ページに移動します。詳細については、「HoloWeb への接続とクエリの実行」をご参照ください。
-
HoloWeb 開発者ページの上部メニューバーで、Security Center をクリックします。
-
Security Center ページの左側ナビゲーションウィンドウで、Resource Group Management をクリックします。
-
Resource Group Management ページで、目的のリソースグループを見つけ、リソースグループクォータ 列の Adjust Quota をクリックします。
-
Adjust Quota ダイアログボックスで、リソースグループクォータを変更し、OK をクリックします。

-
-
ユーザーの関連付け
リソースグループを作成した後、HoloWeb UI を使用してユーザーをリソースグループに関連付けることができます。
-
HoloWeb 開発者ページに移動します。詳細については、「HoloWeb への接続とクエリの実行」をご参照ください。
-
HoloWeb 開発者ページの上部メニューバーで、Security Center をクリックします。
-
Security Center ページの左側ナビゲーションウィンドウで、Resource Group Management をクリックします。
-
Resource Group Management ページで、対象のリソースグループを見つけ、操作列の Associate User をクリックします。
-
[リソースグループの関連付け] ページで、Add User for Association をクリックします。
-
Associate User ダイアログボックスで、ユーザーを選択し、OK をクリックします。
説明-
ドロップダウンリストにユーザーアカウントが表示されない場合は、そのアカウントが現在のインスタンスに追加されていません。ユーザー管理ページに移動してユーザーを追加してください。
-
ユーザーは 1 つのリソースグループにのみ関連付けられます。新しいリソースグループに関連付けた場合、以前の関連付けは上書きされます。
-
-
-
ユーザーの関連解除
-
HoloWeb 開発者ページに移動します。詳細については、「HoloWeb への接続とクエリの実行」をご参照ください。
-
HoloWeb 開発者ページの上部メニューバーで、Security Center をクリックします。
-
Security Center ページの左側ナビゲーションウィンドウで、Resource Group Management をクリックします。
-
Resource Group Management ページで、対象のリソースグループを見つけ、「操作」列の Associate User をクリックします。
-
[リソースグループの関連付け] ページで、デタッチするユーザーを見つけ、「操作」列の Disassociate User をクリックします。
-
Disassociate User ダイアログボックスで、OK をクリックします。
-
SQL を使用したリソースグループの設定
-
リソースグループ構成の確認
次の SQL 文は、すべてのリソースグループ、そのクォータ設定、および各グループに関連付けられたユーザーを照会します。
SELECT * FROM pg_holo_resource_groups;次の例は出力結果を示しています。
res_group_name | property_key | property_value ----------------+--------------+------------------------------------------ resource_1 | worker_limit | 0.3 default | worker_limit | 0.7 resource_1 | bind_users | [ "13xxxxxxxxx13", "p4_29xxxxxxxxxx19" ] -
リソースグループの作成
説明-
デフォルトで、システムは `default` という名前のリソースグループを作成します。すべての計算リソースはこのグループに割り当てられ、明示的に他のリソースグループに関連付けられていないすべてのユーザーはこのグループに属します。
-
他のリソースグループを作成した後、`default` リソースグループのリソースは、他のすべてのグループに割り当てられた後の残りの部分となります。
-
`default` リソースグループには、合計リソースの少なくとも 0.3 を割り当ててください。
次の SQL 文はリソースグループを作成します。
CALL hg_create_resource_group ('resource_group_name', quota);パラメーター
説明
resource_group_name
リソースグループの名前。英字、数字、アンダースコアを使用できます。最大長は 50 文字です。
quota
リソースグループに割り当てるリソースの割合。値は 0.1 以上 0.9 以下である必要があります。小数点以下 1 桁までサポートされています。
-
-
リソースグループクォータの変更
説明Hologres インスタンス内のすべてのリソースグループのクォータ合計は 1 を超えてはなりません。超えると、システムがエラーを報告します。
次の SQL 文はリソースグループクォータを変更します。
CALL hg_alter_resource_group ('resource_group_name', quota);パラメーター
説明
resource_group_name
リソースグループの名前。リソースグループはすでに存在している必要があります。存在しない場合、システムがエラーを報告します。
quota
リソースグループに割り当てるリソースの割合。値は 0.1 以上 0.9 以下である必要があります。小数点以下 1 桁までサポートされています。
-
リソースグループの削除
説明ユーザーが関連付けられているリソースグループは削除できません。
次の SQL 文はリソースグループを削除します。
CALL hg_drop_resource_group ('resource_group_name');パラメーター
説明
resource_group_name
リソースグループの名前。リソースグループはすでに存在している必要があります。存在しない場合、システムがエラーを報告します。
-
ユーザーのリソースグループへの関連付け
説明-
ユーザーは 1 つのリソースグループにのみ関連付けられます。新しいリソースグループに関連付けた場合、以前の関連付けは上書きされます。
-
現在のユーザーを確認するには、次の SQL 文を実行します。
SELECT current_user;
リソースグループを作成した後、ユーザーをそれに関連付けて、ユーザーが使用できる計算リソースを制限できます。次の SQL 文はユーザーをリソースグループに関連付けます。
-
構文例
CALL hg_bind_resource_group('resource_group_name', 'user_name'); -
パラメーター
パラメーター
説明
resource_group_name
リソースグループの名前。リソースグループはすでに存在している必要があります。存在しない場合、システムがエラーを報告します。
user_name
ユーザーの名前。ユーザーは存在し、リソースグループが属するインスタンスへのアクセス権限を持っている必要があります。条件を満たさない場合、システムがエラーを報告します。
-
使用例
CALL hg_bind_resource_group ('resource_1', 'p4_29xxxxxxxxxxx'); -- 注:Alibaba Cloud アカウントは二重引用符で囲む必要があります。 CALL hg_bind_resource_group ('resource_1', '"ALIYUN$xxxx@aliyun.com"'); CALL hg_bind_resource_group ('resource_1', '"RAM$xxx@xxx:xxxx"'); CALL hg_bind_resource_group ('resource_1', '"13xxxxxxxxxxx13"');
-
-
ユーザーのリソースグループからの関連解除
説明ユーザーがリソースグループから関連解除されると、そのユーザーは `default` リソースグループに移動します。
次の SQL 文はユーザーをリソースグループから関連解除します。
-
構文
CALL hg_unbind_resource_group('resource_group_name', 'user_name'); -
パラメーター
パラメーター
説明
resource_group_name
リソースグループの名前。リソースグループはすでに存在している必要があります。存在しない場合、システムがエラーを報告します。
user_name
ユーザーの名前。ユーザーは存在し、リソースグループが属するインスタンスへのアクセス権限を持っている必要があります。条件を満たさない場合、システムがエラーを報告します。
-
使用例
CALL hg_unbind_resource_group ('resource_1', 'p4_29xxxxxxxxxxxxx9'); -- 注:Alibaba Cloud アカウントは二重引用符で囲む必要があります。 CALL hg_unbind_resource_group ('resource_1', '"RAM$xxxx@xxx:xxx"');
-
よくある質問
Q:リソースグループクォータを 0.5 に設定しているのに、CPU およびメモリのメトリックが 50% を超えるのはなぜですか?
A:リソースグループクォータは、ほとんどのクエリエンジン操作における CPU およびメモリを制限します。ただし、SQL の解析、最適化、メタデータ処理、スケジューリング、Parallel Query Engine(PQE)の実行、コンパクションなど、一部の CPU およびメモリ使用量はリソースグループによって制限されません。また、リアルタイム書き込みでは CPU 使用量は制限されますが、メモリ使用量は制限されません。そのため、リソースグループの合計 CPU およびメモリメトリックが設定されたクォータを超える可能性があります。