すべてのプロダクト
Search
ドキュメントセンター

Hologres:Hologresインスタンスでのコンピューティングリソースの分離(近日廃止予定)

最終更新日:Jan 11, 2025

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を使用してリソースグループを視覚的に設定する方法について説明します。

  • リソースグループの作成

    1. HoloWebコンソールにログインします。詳細については、HoloWebに接続してクエリを実行するをご参照ください。

    2. 上部のナビゲーションバーで、[セキュリティセンター] をクリックします。

    3. [セキュリティセンター] タブで、左側のナビゲーションペインの [リソースグループ管理] をクリックします。

    4. [リソースグループ管理(ベータ)] ページで、[インスタンス名] ドロップダウンリストから管理するインスタンスを選択し、[リソースグループを追加] をクリックします。新增资源组

    5. [リソースグループを追加] ダイアログボックスで、[リソースグループ名] パラメーターと [リソースグループクォータ] パラメーターを設定し、[OK] をクリックします。

      説明

      Hologresインスタンス内のすべてのリソースグループの合計クォータは 1 を超えることはできません。超えると、エラーが報告されます。

  • リソースグループの削除

    1. HoloWebコンソールにログインします。詳細については、HoloWebに接続してクエリを実行するをご参照ください。

    2. 上部のナビゲーションバーで、[セキュリティセンター] をクリックします。

    3. [セキュリティセンター] タブで、左側のナビゲーションペインの [リソースグループ管理] をクリックします。

    4. [リソースグループ管理(ベータ)] ページで、削除するリソースグループを見つけ、[アクション] 列の [削除] をクリックします。

      説明

      ユーザーがリソースグループに関連付けられている場合、リソースグループを削除することはできません。

  • リソースグループのクォータの調整

    1. HoloWebコンソールにログインします。詳細については、HoloWebに接続してクエリを実行するをご参照ください。

    2. 上部のナビゲーションバーで、[セキュリティセンター] をクリックします。

    3. [セキュリティセンター] タブで、左側のナビゲーションペインの [リソースグループ管理] をクリックします。

    4. [リソースグループ管理(ベータ)] ページで、クォータを調整するリソースグループを見つけ、[リソースグループクォータ] 列の [クォータの調整] をクリックします。

    5. [クォータの調整] ダイアログボックスで、クォータを調整し、[OK] をクリックします。调整配额

  • リソースグループへのユーザーの関連付け

    リソースグループを作成した後、HoloWebを使用してユーザーをリソースグループに関連付けることができます。

    1. HoloWebコンソールにログインします。詳細については、HoloWebに接続してクエリを実行するをご参照ください。

    2. 上部のナビゲーションバーで、[セキュリティセンター] をクリックします。

    3. [セキュリティセンター] タブで、左側のナビゲーションペインの [リソースグループ管理] をクリックします。

    4. [リソースグループ管理(ベータ)] ページで、ユーザーを関連付けるリソースグループを見つけ、[アクション] 列の [ユーザーの関連付け] をクリックします。

    5. 表示されるページで、[関連付けのためにユーザーを追加] をクリックします。

    6. [ユーザーの関連付け] ダイアログボックスで、ドロップダウンリストからユーザーを選択し、[OK] をクリックします。

      説明
      • ドロップダウンリストに、リソースグループに関連付けるユーザーが見つからない場合、そのユーザーは現在のインスタンスに追加されていません。この場合は、[ユーザー管理] ページでユーザーを追加します。

      • ユーザーは 1 つのリソースグループのみに関連付けることができます。ユーザーを異なるリソースグループに繰り返し関連付けると、ユーザーは最後のリソースグループに関連付けられます。

  • リソースグループからのユーザーの関連付け解除

    1. HoloWebコンソールにログインします。詳細については、HoloWebに接続してクエリを実行するをご参照ください。

    2. 上部のナビゲーションバーで、[セキュリティセンター] をクリックします。

    3. [セキュリティセンター] タブで、左側のナビゲーションペインの [リソースグループ管理] をクリックします。

    4. [リソースグループ管理(ベータ)] ページで、ユーザーを関連付けるリソースグループを見つけ、[アクション] 列の [ユーザーの関連付け] をクリックします。

    5. 表示されるページで、関連付けを解除するユーザーを見つけ、[アクション] 列の [ユーザーの関連付け解除] をクリックします。

    6. [ユーザーの関連付け解除] メッセージで、[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 とメモリリソースは、リソースグループに設定したクォータを超える可能性があります。