Hologresでは、コンピューティングリソースをきめ細かく管理できます。異なるユーザーには、CPUコアとメモリを含む、異なる数のコンピューティングユニット(CU)が割り当てられます。このようにして、異なるユーザーが使用できるコンピューティングリソースの量に制限が課され、単一のHologresインスタンス上のジョブをユーザーまたはアプリケーション間で分離できます。このトピックでは、リソースグループを使用してHologresインスタンスのコンピューティングリソースを分離する方法について説明します。
背景情報
Hologres V1.0以前は、インスタンス間のリソース分離をサポートしていますが、特定のインスタンス内のユーザー間のきめ細かいリソース分離はサポートしていません。ただし、多くのシナリオでは、干渉を防ぐために、インスタンス内の各ユーザーが使用できるリソースに制限を設ける必要があります。このような場合、インスタンス内のユーザー間でのリソース分離が必要になります。この要件を満たすために、Hologresはリソースグループ管理機能を提供します。ただし、技術的な制限により、リソースグループを使用して一部の種類のコンピューティング負荷を分離することはできません。本番環境でリソースグループを使用する場合は注意が必要です。リソースを分離するには、エラスティック仮想ウェアハウスを使用することをお勧めします。
制限事項
Hologres V1.1以降でのみ、リソースグループを使用してHologresインスタンスのコンピューティングリソースを管理できます。 HologresインスタンスのバージョンがV1.1より前の場合は、Hologresコンソールでインスタンスを手動でアップグレードするか、テクニカルサポートのDingTalkグループに参加してください。 HologresコンソールでHologresインスタンスを手動でアップグレードする方法の詳細については、手動アップグレードをご参照ください。テクニカルサポートを受ける方法の詳細については、Hologresのオンラインサポートを受けるをご参照ください。
スーパーユーザーのみが、リソースグループを使用してHologresインスタンスのコンピューティングリソースを管理できます。通常のユーザーがリソースグループ管理機能を使用しようとすると、必要な権限がないことを示すエラーが報告されます。
Hologresでは、コンピューティングリソースはインスタンスに基づいて割り当てられます。インスタンスに複数のデータベースがある場合、すべてのデータベースはインスタンスのコンピューティングリソースを共有し、同じクォータを持ちます。
HoloWebコンソールでのリソースグループの設定
このセクションでは、HoloWebを使用してリソースグループを視覚的に設定する方法について説明します。
リソースグループの作成
HoloWebコンソールにログインします。詳細については、HoloWebに接続してクエリを実行するをご参照ください。
上部のナビゲーションバーで、[セキュリティセンター] をクリックします。
[セキュリティセンター] タブで、左側のナビゲーションペインの [リソースグループ管理] をクリックします。
[リソースグループ管理(ベータ)] ページで、[インスタンス名] ドロップダウンリストから管理するインスタンスを選択し、[リソースグループを追加] をクリックします。

[リソースグループを追加] ダイアログボックスで、[リソースグループ名] パラメーターと [リソースグループクォータ] パラメーターを設定し、[OK] をクリックします。
説明Hologresインスタンス内のすべてのリソースグループの合計クォータは 1 を超えることはできません。超えると、エラーが報告されます。
リソースグループの削除
HoloWebコンソールにログインします。詳細については、HoloWebに接続してクエリを実行するをご参照ください。
上部のナビゲーションバーで、[セキュリティセンター] をクリックします。
[セキュリティセンター] タブで、左側のナビゲーションペインの [リソースグループ管理] をクリックします。
[リソースグループ管理(ベータ)] ページで、削除するリソースグループを見つけ、[アクション] 列の [削除] をクリックします。
説明ユーザーがリソースグループに関連付けられている場合、リソースグループを削除することはできません。
リソースグループのクォータの調整
HoloWebコンソールにログインします。詳細については、HoloWebに接続してクエリを実行するをご参照ください。
上部のナビゲーションバーで、[セキュリティセンター] をクリックします。
[セキュリティセンター] タブで、左側のナビゲーションペインの [リソースグループ管理] をクリックします。
[リソースグループ管理(ベータ)] ページで、クォータを調整するリソースグループを見つけ、[リソースグループクォータ] 列の [クォータの調整] をクリックします。
[クォータの調整] ダイアログボックスで、クォータを調整し、[OK] をクリックします。

リソースグループへのユーザーの関連付け
リソースグループを作成した後、HoloWebを使用してユーザーをリソースグループに関連付けることができます。
HoloWebコンソールにログインします。詳細については、HoloWebに接続してクエリを実行するをご参照ください。
上部のナビゲーションバーで、[セキュリティセンター] をクリックします。
[セキュリティセンター] タブで、左側のナビゲーションペインの [リソースグループ管理] をクリックします。
[リソースグループ管理(ベータ)] ページで、ユーザーを関連付けるリソースグループを見つけ、[アクション] 列の [ユーザーの関連付け] をクリックします。
表示されるページで、[関連付けのためにユーザーを追加] をクリックします。
[ユーザーの関連付け] ダイアログボックスで、ドロップダウンリストからユーザーを選択し、[OK] をクリックします。
説明ドロップダウンリストに、リソースグループに関連付けるユーザーが見つからない場合、そのユーザーは現在のインスタンスに追加されていません。この場合は、[ユーザー管理] ページでユーザーを追加します。
ユーザーは 1 つのリソースグループのみに関連付けることができます。ユーザーを異なるリソースグループに繰り返し関連付けると、ユーザーは最後のリソースグループに関連付けられます。
リソースグループからのユーザーの関連付け解除
HoloWebコンソールにログインします。詳細については、HoloWebに接続してクエリを実行するをご参照ください。
上部のナビゲーションバーで、[セキュリティセンター] をクリックします。
[セキュリティセンター] タブで、左側のナビゲーションペインの [リソースグループ管理] をクリックします。
[リソースグループ管理(ベータ)] ページで、ユーザーを関連付けるリソースグループを見つけ、[アクション] 列の [ユーザーの関連付け] をクリックします。
表示されるページで、関連付けを解除するユーザーを見つけ、[アクション] 列の [ユーザーの関連付け解除] をクリックします。
[ユーザーの関連付け解除] メッセージで、[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 という名前のリソースグループのコンピューティングリソース = 合計コンピューティングリソース - カスタムリソースグループのコンピューティングリソース
default という名前のリソースグループには、合計コンピューティングリソースの少なくとも 30% を予約することをお勧めします。
リソースグループを作成するには、次の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
ユーザーの名前。指定されたユーザーが存在し、リソースグループが属するHologresインスタンスへのアクセス権限を持っている必要があります。そうでない場合、エラーが報告されます。
例
CALL hg_bind_resource_group ('resource_1', 'p4_29xxxxxxxxxxx'); -- 各ユーザー名は二重引用符(")で囲む必要があります。 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
ユーザーの名前。指定されたユーザーが存在し、リソースグループが属するHologresインスタンスへのアクセス権限を持っている必要があります。そうでない場合、エラーが報告されます。
例
CALL hg_unbind_resource_group ('resource_1', 'p4_29xxxxxxxxxxxxx9'); -- 各ユーザー名は二重引用符(")で囲む必要があります。 CALL hg_unbind_resource_group ('resource_1', '"RAM$xxxx@xxx:xxx"');
FAQ
リソースグループのクォータを 0.5 に設定しているにもかかわらず、リソースグループが CPU とメモリリソースの 50% 以上を占有するのはなぜですか?
リソースグループのクォータを設定すると、クエリエンジンによって消費されるほとんどの CPU とメモリリソースが制限されます。ただし、一部のアクティビティで消費されるリソースは、クォータの影響を受けません。アクティビティには、SQLの解析と最適化、メタデータ処理、スケジューリング操作、Panel Quality Engineering(PQE)の実行、および圧縮操作が含まれます。さらに、クォータは CPU リソースを制限しますが、同時およびリアルタイムのデータ書き込みのメモリリソースは制限しません。したがって、リソースグループによって占有される CPU とメモリリソースは、リソースグループに設定したクォータを超える可能性があります。