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

Hologres:仮想ウェアハウスの管理

最終更新日:Feb 14, 2026

このトピックでは、仮想ウェアハウスの表示、作成、削除、スケールに関するコマンドについて説明します。

注意事項

  • Hologres V2.0.4 以降のインスタンスのみが仮想ウェアハウスをサポートします。ご利用のインスタンスのバージョンが V2.0.4 より前の場合は、テクニカルサポートに連絡してインスタンスをアップグレードしてください。

  • 各インスタンスで作成できる仮想ウェアハウスは最大 10 個です。各仮想ウェアハウスのリソースは、最小 32 CU (計算ユニット) から最大 512 CU の範囲で設定できます。

    • V3.0.10 以降、計算グループの最大サイズは 1024 CU に増加しました。

    • V3.0.27 以降、仮想ウェアハウスの最大仕様制限は撤廃されました。

  • 新しいインスタンスを購入すると、システムは init_warehouse という名前のデフォルトの仮想ウェアハウスを作成します。各インスタンスにはデフォルトの仮想ウェアハウスが 1 つだけあります。デフォルトの仮想ウェアハウスは削除できませんが、変更することはできます。SQL コマンドを使用してデフォルトの仮想ウェアハウスを停止または再開することはできません。デフォルトでは、すべてのユーザーがデフォルトの仮想ウェアハウスを使用する権限を持っています。

  • DDL はどの計算グループでも実行できます。

  • 仮想ウェアハウスインスタンスはリソースグループをサポートしていません。リソースグループは段階的に廃止される予定です。リソースグループの詳細については、「Resource Management」をご参照ください。リソースの分離を実現するために、複数の仮想ウェアハウスを作成することを推奨します。

  • 仮想ウェアハウスインスタンスの課金の詳細については、「課金の概要」をご参照ください。

計算グループの作成

注意事項

  • Alibaba Cloud アカウントまたは Resource Access Management (RAM) ユーザーのみが仮想ウェアハウスを作成できます。インスタンスのスーパーユーザー権限が必要です。

  • 仮想ウェアハウスの作成は非同期プロセスであるため、仮想ウェアハウスを作成する SQL コマンドを実行しても、作成が完了したわけではありません。hg_get_warehouse_status 関数を使用して、仮想ウェアハウスのステータスをクエリする必要があります。

方法

(推奨) UI の使用

  1. Hologres コンソールにログインします。上部のメニューバーで、インスタンスが配置されているリージョンを選択します。

  2. 左側のナビゲーションウィンドウで、Instances を選択し、対象の インスタンス ID をクリックして、製品ページに移動します。

  3. 製品ページ左側のナビゲーションウィンドウで、計算グループ管理 をクリックし、仮想ウェアハウスリソース管理 タブに移動します。

  4. 仮想ウェアハウスの新規追加 をクリックします。仮想ウェアハウスの新規追加 ダイアログボックスで、次のパラメーターを設定し、OK をクリックします。

    パラメーター名

    説明

    Virtual Warehouse Name

    作成する計算グループの名前です。

    仮想ウェアハウスの単一クラスターの仕様

    計算グループ内の各クラスターの予約リソース量です。

    仮想ウェアハウスの予約済みクラスター数

    仮想ウェアハウスの初期クラスター数です。予約済みクラスターのコンピューティングリソースは、インスタンスの予約済みリソースから取得されます。

    詳細については、「リソースの弾力性の概要」をご参照ください。

SQL コマンド

  • 構文

    CALL hg_create_warehouse ('<warehouse_name>', <cu>);
  • パラメーター

    パラメーター

    タイプ

    説明

    warehouse_name

    TEXT

    新しい仮想ウェアハウスの名前。命名規則:

    • 数字、文字、アンダースコア (_) のみを含めることができます。

    • 最大 127 文字までです。

    cu

    INTEGER

    計算グループの CU 数。

    • 最大:512

    • 最小:32

    • ステップサイズ:16

計算グループの削除

注意事項

  • Alibaba Cloud アカウントまたは RAM ユーザーのみが仮想ウェアハウスを削除できます。インスタンスのスーパーユーザー権限が必要です。

  • インスタンスのデフォルトの仮想ウェアハウスは削除できません。

  • SQL コマンドを使用してテーブルグループのプライマリ仮想ウェアハウスを削除することはできません。

  • 仮想ウェアハウスの削除は非同期プロセスであるため、SQL コマンドを実行しても削除が完了したわけではありません。hg_get_warehouse_status 関数を使用して、仮想ウェアハウスのステータスをクエリする必要があります。

方法

(推奨) UI の使用

  1. Hologres コンソールにログインします。上部のメニューバーで、インスタンスが配置されているリージョンを選択します。

  2. 左側のナビゲーションウィンドウで、Instances を選択し、対象の インスタンス ID をクリックして、製品ページに移動します。

  3. 製品ページの左側にあるナビゲーションウィンドウで、計算グループ管理 をクリックし、仮想ウェアハウスリソース管理 タブに移動します。

  4. 対象の仮想ウェアハウスの Actions 列で、停止 をクリックします。確認して、仮想ウェアハウスを停止します。

  5. 仮想ウェアハウスが停止したら、操作列のDeleteをクリックして仮想ウェアハウスを削除します。

SQL コマンド

  • 構文

    CALL hg_drop_warehouse ('<warehouse_name>');
  • パラメーター

    パラメーター

    タイプ

    説明

    warehouse_name

    TEXT

    削除する計算グループの名前です。

仮想ウェアハウスのスケーリング

権限

  • V3.0.28 より前は、Alibaba Cloud アカウントまたは RAM ユーザーのみが仮想ウェアハウスをスケーリングできました。V3.0.28 以降、RAM ロール (STS アカウント) もこの操作を実行できます。

  • 仮想ウェアハウスをスケーリングするには、次の権限が必要です:

    • RAM ロール権限:AliyunHologresWarehouseFullAccess または AliyunHologresFullAccess。

    • インスタンス内のスーパーユーザー権限。

仮想ウェアハウスの弾力的なスケーリングの仕組みについては、「リソースの弾力性の概要」をご参照ください。

仮想ウェアハウスのスケールアップ (垂直スケーリング)

使用上の注意

  • 仮想ウェアハウスをスケールアップする前に、まずコンソールでインスタンスのリソースをスケールアウトして、インスタンスに十分な未割り当てリソースがあることを確認する必要があります。インスタンスリソースが調整されると、システムは新しい Pod を開始します。ただし、これらの Pod はシャードメタデータをロードしません。したがって、新しい Pod は計算に参加しません。インスタンスのスケールアウトは、仮想ウェアハウスでのクエリと書き込みには影響しません。

  • インスタンスがスケールアウトされ、十分な未割り当てリソースがある場合、これらのリソースを使用して仮想ウェアハウスをスケールアップできます。インスタンスに未割り当てリソースが不足している場合、仮想ウェアハウスはスケールアップできません。

    • Hologres V2.2 以降、仮想ウェアハウスに空の Pod がある場合、システムは自動的にリバランス操作を実行して、新しい Pod にシャードメタデータをロードさせます。リバランスが完了した後にのみ、新しく追加されたリソースを使用できます。リバランス中、クエリと書き込みは約 15 秒間中断されます。したがって、インスタンスが V2.2 以降の場合、仮想ウェアハウスをスケールアップした後に手動でリバランス操作を実行する必要はありません。インスタンスが V2.2 より前の場合、手動でリバランス操作を実行する必要があります。

    • Hologres V3.0.28 以降、スケールアップ中に仮想ウェアハウスでのクエリと書き込みは中断されませんが、Flink タスクが失敗してリトライする可能性があります。

    説明

    スケールアップ中、複数行のデータ操作言語 (DML) トランザクションは引き続き中断されます。これには、hg_experimental_enable_transaction パラメーターが明示的に有効になっている DML トランザクション、ネイティブの INSERT OVERWRITE ステートメント、および 動的テーブル の増分更新が含まれます。

方法

(推奨) UI の使用

  1. Hologres コンソールにログインします。上部のメニューバーで、インスタンスが配置されているリージョンを選択します。

  2. 左側のナビゲーションウィンドウで、Instances を選択し、対象の インスタンス ID をクリックして、製品ページに移動します。

  3. 製品ページの左側にあるナビゲーションウィンドウで、計算グループ管理 をクリックし、仮想ウェアハウスリソース管理 タブに移動します。

  4. 対象の仮想ウェアハウスの Actions 列で、設定の調整 をクリックします。 仮想ウェアハウスの単一クラスターの仕様 を目的のリソース量に増加させ、OK をクリックしてスケールアップを完了します。

  5. (省略可) インスタンスリソースがスケールアウトされた後、対象の仮想ウェアハウスの操作列で Rebalance をクリックします。必要に応じてリバランスを実行し、シャードを新しく追加された Pod に再配分します。

SQL コマンド

  1. 仮想ウェアハウスのリソースをスケールアップします。構文は次のとおりです:

    CALL hg_alter_warehouse ('<warehouse_name>',<cu>);

    パラメーター:

    パラメーター

    タイプ

    説明

    warehouse_name

    TEXT

    変更する計算グループの名前です。

    cu

    INTEGER

    計算グループの CU 数。

    • 最大:512

    • 最小:32

    • ステップサイズ:16

  2. 計算グループのステータスをクエリできます。

    仮想ウェアハウスのコンピューティングリソースの調整は非同期プロセスであるため、SQL コマンドを実行しても調整が完了したわけではありません。hg_get_warehouse_status 関数を使用して、仮想ウェアハウスのステータスをクエリする必要があります。

    select hg_get_warehouse_status('<warehouse_name>');

    コマンドが Running を返した場合、仮想ウェアハウスは実行中です。次のステップに進みます。

  3. シャードを再配布します。

    次のコマンドを実行して、スケールアップされた仮想ウェアハウスにシャードを再配布します。

    SELECT hg_rebalance_warehouse ('<warehouse_name>');
  4. 計算グループのステータスをクエリできます。

    リバランスは非同期プロセスであるため、SQL コマンドを実行してもリバランスが完了したわけではありません。次のコマンドを実行して、仮想ウェアハウスのステータスをクエリする必要があります。

    • hg_get_rebalance_warehouse_status 関数は、現在の計算グループのステータスを取得します:

      SELECT hg_get_rebalance_warehouse_status ('<warehouse_name>');

      DONE の戻り値は成功を示します。

    • hg_wait_until_rebalance_warehouse_done 関数は、指定された仮想ウェアハウスが Running 状態になるまで待機してから結果を返します:

      select hg_wait_until_rebalance_warehouse_done('<warehouse_name>',<timeout_seconds>);

      timeout_seconds:オプション。タイムアウト期間 (秒)。タイプは INTEGER です。

      DONE の戻り値は成功を示します。

例:次の SQL ステートメントを実行して、read_warehouse_1 仮想ウェアハウスを 64 CU にスケールアップします。

-- 仮想ウェアハウスのリソースを増やす
CALL hg_alter_warehouse ('read_warehouse_1',64);

-- 仮想ウェアハウスがスケールアップされるのを待つ
SELECT wait_until_warehouse_running ('read_warehouse_1');

-- リバランス
SELECT hg_rebalance_warehouse ('read_warehouse_1');

-- リバランスが完了するのを待つ
SELECT hg_wait_until_rebalance_warehouse_done ('read_warehouse_1');

仮想ウェアハウスのスケールダウン (垂直スケーリング)

使用上の注意

  • 仮想ウェアハウスをスケールダウンすると、Hologres システムはまずシャードのリバランスを実行して、オフラインになる予定の Pod から他の Pod にシャードを移行します。

    • Hologres V3.1 より前では、スケールダウン中にリバランスのためにクエリと書き込みが約 15 秒間中断されます。リバランスが完了すると、冗長な Pod は直接オフラインになります。

    • (ベータ) Hologres V3.1 以降、仮想ウェアハウスのスケールダウンのための Pod オフラインロジックが最適化されました。スケールダウン中、仮想ウェアハウスでの主要なクエリと書き込みは中断されません。Pod がオフラインになると、Pod 上の接続は数秒間の一時的な切断を経験します。Flink タスクが失敗してリトライする可能性があります。ただし、スケールダウンがトリガーされたときに仮想ウェアハウスで大規模なクエリまたは書き込みが実行されており、60 分以上継続する必要がある場合、タスクはスケールダウンから 60 分後にエラーを報告します。

    説明

    スケールダウン中、複数行の DML トランザクションは引き続き中断されます。これには、hg_experimental_enable_transaction パラメーターが明示的に有効になっている DML トランザクション、ネイティブの INSERT OVERWRITE ステートメント、および 動的テーブル の増分更新が含まれます。

  • スケールダウン後、コンピューティングリソースはインスタンスの未割り当てリソースに戻されます。これらのリソースを使用して、新しい仮想ウェアハウスを作成したり、他の仮想ウェアハウスをスケールアップしたりできます。また、インスタンスをスケールインしてこれらのリソースを解放することもできます。

方法

(推奨) UI の使用

手順については、「仮想ウェアハウスのスケールアップ (垂直スケーリング)」をご参照ください。スケールダウンを完了するには、仮想ウェアハウスの単一クラスターの仕様 をターゲットとなるリソース量まで減らします。

SQL コマンド

  1. 仮想ウェアハウスのリソースをスケールダウンします。構文は次のとおりです:

    CALL hg_alter_warehouse ('<warehouse_name>',<cu>);

    パラメーター:

    パラメーター

    タイプ

    説明

    warehouse_name

    TEXT

    調整する計算グループの名前です。

    cu

    INTEGER

    計算グループの計算ユニット (CU) 数。

    • 最大:512

    • 最小:32

    • ステップサイズ:16

  2. 計算グループのステータスをクエリできます。

    仮想ウェアハウスのコンピューティングリソースの調整は非同期プロセスであるため、SQL コマンドを実行しても調整が完了したわけではありません。hg_get_warehouse_status 関数を使用して、仮想ウェアハウスのステータスをクエリする必要があります。

    select hg_get_warehouse_status('<warehouse_name>');

    running の戻り値は、仮想ウェアハウスが実行中状態であることを示します。

仮想ウェアハウスのスケールアウト (水平スケーリング)

使用上の注意

詳細については、「スケールアップの使用上の注意」をご参照ください。

プロシージャ

  1. Hologres コンソールにログインします。上部のメニューバーで、インスタンスが配置されているリージョンを選択します。

  2. 左側のナビゲーションウィンドウで、Instances を選択し、対象の インスタンス ID をクリックして製品ページに移動します。

  3. 製品ページの左側のナビゲーションウィンドウで、計算グループ管理 をクリックし、仮想ウェアハウスリソース管理 タブに移動します。

  4. 対象の仮想ウェアハウスのActions列で、設定の調整をクリックします。仮想ウェアハウスの予約済みクラスター数の数を目的の数に増やし、OKをクリックしてスケールアウトを完了します。

計算グループクラスターのスケールイン

使用上の注意

詳細については、「スケールダウンの使用上の注意」をご参照ください。

プロシージャ

  1. Hologres コンソールにログインします。上部のメニューバーで、インスタンスが配置されているリージョンを選択します。

  2. 左側のナビゲーションウィンドウで、Instances を選択し、目的の インスタンス ID をクリックして、製品ページに移動します。

  3. 製品ページの左側にあるナビゲーションウィンドウで、計算グループ管理 をクリックし、「仮想ウェアハウスリソース管理」タブに移動します。

  4. 対象の仮想ウェアハウスのActions列で、設定の調整をクリックします。仮想ウェアハウスの予約済みクラスター数を目的の数に減らし、OKをクリックしてスケールインを完了します。

計算グループの O&M 操作

計算グループの表示

  • 構文

    • hologres.hg_warehouses システムテーブルには、現在のインスタンス内のすべての仮想ウェアハウスに関する情報が格納されています。次の SQL ステートメントを実行して、現在のインスタンス内のすべての仮想ウェアハウスに関する情報を表示できます。

      SELECT * FROM hologres.hg_warehouses;
    • 次の SQL ステートメントを実行して、現在使用されている仮想ウェアハウスを表示します。システムは現在の仮想ウェアハウスの名前を返します。

      SELECT current_warehouse();
  • パラメーター

    hologres.hg_warehouses システムテーブルには、次の列が含まれています:

    フィールド

    データ型

    説明

    warehouse_id

    INTEGER

    計算グループ ID は、計算グループを一意に識別します。

    1

    warehouse_name

    TEXT

    計算グループの名前です。

    init_warehouse

    cpu

    INTEGER

    計算グループの CPU コア数。

    32

    mem

    INTEGER

    計算グループのメモリ (GB)

    128

    cluster_min_count

    INTEGER

    計算グループの最小シャード数。

    1

    cluster_max_count

    INTEGER

    計算グループの最大シャード数。

    1

    target_status

    INTEGER

    仮想ウェアハウスのターゲットステータス。仮想ウェアハウスのステータス変更は非同期プロセスであるため、仮想ウェアハウスを作成する SQL ステートメントを実行すると、システムはすぐに実行結果を返しますが、仮想ウェアハウスはまだ作成されていません。システムはバックグラウンドで非同期に仮想ウェアハウスを作成します。このステータスは、仮想ウェアハウスが到達すべき最終状態を記録します。有効値:

    • 1:実行中。

    • 2:インスタンスを手動でシャットダウン。

    1

    status

    INTEGER

    計算グループには、次のいずれかのステータスがあります:

    • 0:初期化中。

    • 1:実行中。

    • 2:手動で停止。

    • 3:処理失敗。ステータスが処理失敗の場合、status_detail 列に具体的な理由が表示されます。

    • 4:処理中。

    1

    status_detail

    TEXT

    計算グループのステータスの詳細。

    なし

    is_default

    BOOLEAN

    デフォルトの仮想ウェアハウスであるかどうかを示します。有効値:

    • デフォルトの計算グループです。

    • f はデフォルトの計算グループではありません。

    t

    config

    TEXT

    計算グループの構成

    なし

    comment

    TEXT

    計算グループに関する注記。

    なし

計算グループの停止

注意事項

  • 仮想ウェアハウスを停止するには、インスタンスのスーパーユーザー権限が必要です。

  • 仮想ウェアハウスに対応するテーブルグループにセカンダリ仮想ウェアハウスがある場合、プライマリ仮想ウェアハウスは停止できません。たとえば、仮想ウェアハウス A はテーブルグループ A のプライマリ仮想ウェアハウスであり、テーブルグループ A のテーブルへのデータ書き込みを担当します。仮想ウェアハウス B はテーブルグループ A のセカンダリ仮想ウェアハウスです。この場合、仮想ウェアハウス A を停止することはできません。

  • 仮想ウェアハウスの停止は非同期プロセスであるため、SQL コマンドを実行しても操作が完了したわけではありません。hg_get_warehouse_status 関数を使用して、仮想ウェアハウスのステータスをクエリする必要があります。

方法

(推奨) UI の使用

  1. Hologres コンソールにログインします。上部のメニューバーで、インスタンスが配置されているリージョンを選択します。

  2. 左側のナビゲーションウィンドウで、Instances を選択し、対象の インスタンス ID をクリックして、製品ページに移動します。

  3. 製品ページの左側にあるナビゲーションウィンドウで、計算グループ管理 をクリックし、仮想ウェアハウスリソース管理 タブに移動します。

  4. 対象の仮想ウェアハウスの Actions 列で、停止 をクリックします。確認して、仮想ウェアハウスを停止します。

SQL コマンド

  • 構文

    CALL hg_suspend_warehouse ('<warehouse_name>');
  • パラメーター

    パラメーター

    タイプ

    説明

    warehouse_name

    TEXT

    停止する仮想ウェアハウスの名前です。

計算グループの再開

注意事項

  • 仮想ウェアハウスを再開するには、インスタンスのスーパーユーザー権限が必要です。

  • 仮想ウェアハウスの再開は非同期プロセスであるため、SQL コマンドを実行しても操作が完了したわけではありません。hg_get_warehouse_status 関数を使用して、仮想ウェアハウスのステータスをクエリする必要があります。

方法

(推奨) UI の使用

  1. Hologres コンソールにログインします。上部のメニューバーで、インスタンスが配置されているリージョンを選択します。

  2. 左側のナビゲーションウィンドウで、Instances を選択し、対象の インスタンス ID をクリックして、製品ページに移動します。

  3. 製品ページの左側にあるナビゲーションウィンドウで、計算グループ管理 をクリックし、仮想ウェアハウスリソース管理 タブに移動します。

  4. 対象の仮想ウェアハウスの Actions 列で、起動 をクリックします。確認して仮想ウェアハウスを再開します。

SQL コマンド

  • 構文

    CALL hg_resume_warehouse ('<warehouse_name>');
  • パラメーター

    パラメーター

    タイプ

    説明

    warehouse_name

    TEXT

    回復に必要な計算グループ名です。

計算グループの再起動

注意事項

  • 仮想ウェアハウスを再起動するには、インスタンスのスーパーユーザー権限が必要です。

  • 仮想ウェアハウスの再起動は非同期プロセスであるため、SQL コマンドを実行しても操作が完了したわけではありません。hg_get_warehouse_status 関数を使用して、仮想ウェアハウスのステータスをクエリする必要があります。

方法

(推奨) UI の使用

  1. Hologres コンソールにログインします。上部のメニューバーで、インスタンスが配置されているリージョンを選択します。

  2. 左側のナビゲーションウィンドウで、Instances を選択し、対象の インスタンス ID をクリックして、製品ページに移動します。

  3. 製品ページの左側のナビゲーションウィンドウで、計算グループ管理 をクリックし、仮想ウェアハウスリソース管理 タブに移動します。

  4. 対象の仮想ウェアハウスの Actions 列で、Restart をクリックします。確認し、仮想ウェアハウスを再起動します。

SQL コマンド

  • 構文

    CALL hg_restart_warehouse('<warehouse_name>');
  • パラメーター

    パラメーター

    タイプ

    説明

    warehouse_name

    TEXT

    再起動する仮想ウェアハウスの名前です。

計算グループのステータス取得

  • 構文

    • 次の SQL ステートメントを使用して、計算グループの現在のステータスを取得できます:

      select hg_get_warehouse_status('<warehouse_name>');
    • 仮想ウェアハウスの作成やスケーリングなどの操作は非同期で実行されるため、仮想ウェアハウスのステータスが変更された後に他の操作を実行する必要がある場合があります。この場合、wait_until_warehouse_running 関数を使用できます。この関数は、指定された仮想ウェアハウスが実行中状態になるまで待機してから結果を返します。コマンドは次のとおりです:

      select wait_until_warehouse_running('<warehouse_name>',<timeout_seconds>);
  • パラメーター

    パラメーター

    タイプ

    説明

    warehouse_name

    TEXT

    ステータスを取得する計算グループの名前です。

    timeout_seconds

    INTEGER

    タイムアウト期間 (秒)。このパラメーターはオプションです。

  • 次の SQL ステートメントを実行して、org_data テーブルから res_data テーブルにデータをインポートする前に仮想ウェアハウスをスケールアップし、インポートが完了した後に仮想ウェアハウスをスケールダウンします:

    -- warehouse_1 を 64 CU にスケールアップする
    CALL hg_alter_warehouse ('warehouse_1',64);
    
    -- warehouse_1 がスケールアップされるのを待つ
    SELECT wait_until_warehouse_running('warehouse_1');
    
    -- データを書き込む
    INSERT INTO res_data SELECT * FROM org_data;
    
    -- warehouse_1 を 32 CU にスケールダウンする
    CALL hg_alter_warehouse ('warehouse_1',32);

計算グループ名の変更

注意事項

仮想ウェアハウスの名前を変更するには、インスタンスのスーパーユーザー権限が必要です。

方法

(推奨) UI の使用

  1. Hologres コンソールにログインします。上部のメニューバーで、インスタンスが配置されているリージョンを選択します。

  2. 左側のナビゲーションウィンドウで、Instances を選択し、対象の インスタンス ID をクリックして、製品ページに移動します。

  3. 製品ページの左側のナビゲーションウィンドウで、計算グループ管理 をクリックし、仮想ウェアハウスリソース管理 タブに移動します。

  4. 対象の仮想ウェアハウスの Virtual Warehouse Name 列で、image アイコンをクリックして名前を変更します。

SQL コマンドの使用

  • 構文

    CALL hg_rename_warehouse('<org_warehouse_name>','<new_warehouse_name>');
  • パラメーター

    パラメーター

    タイプ

    説明

    org_warehouse_name

    TEXT

    変更する計算グループの名前です。

    new_warehouse_name

    TEXT

    計算グループの新しい名前です。

高度な操作

計算グループのリバランス

Hologres インスタンスが実行中のとき、各仮想ウェアハウスのワーカーノードはデータシャードのメタデータを均等にロードします。ただし、高速回復やスケールアウト後などの一部のシナリオでは、データシャードがワーカーノード間で不均等に分散されることがあります。この場合、シャードリバランス操作をトリガーして、データシャードを積極的に再配布し、仮想ウェアハウスのワーカーノードがシャードメタデータを均等にロードするようにする必要があります。

  • 権限

    シャードリバランス操作をトリガーするには、インスタンスのスーパーユーザー権限が必要です。

  • 注意事項

    • Hologres V2.1 以降、仮想ウェアハウスに空のワーカーノード (つまり、シャードをロードしていないノード) が含まれている場合、仮想ウェアハウスは自動的にリバランスをトリガーします。

    • Hologres V2.2 以降、システムは仮想ウェアハウスのリバランス中に実行される SELECT クエリの自動リトライをサポートします。これにより、クエリはわずかに長い実行時間の後に正常に完了し、ERROR: fail to execute query internal error: Get rundown is not allowed in recovering state. のようなエラーを防ぎます。

  • 構文

    SELECT hg_rebalance_warehouse ('<warehouse_name>');
  • パラメーター

    パラメーター

    タイプ

    説明

    warehouse_name

    TEXT

    シャードバランシングをトリガーする計算グループの名前です。

  • 戻り値

    シャードリバランス操作をトリガーすると、次のいずれかの結果が返されます:

    • true:リバランスが正常にトリガーされ、システムはリバランス操作を開始します。

    • false:リバランスは不要です。

    • エラー:リバランスのトリガーに失敗しました。たとえば、Pod に障害がある場合、リバランス操作をトリガーするとエラーが報告されます。

    説明
    • リバランス中、システムはバランスの取れた状態 (各ワーカーノードがロードするシャード数の差が 1 以下である状態) を達成するためにリバランスが必要かどうかを計算します。例:

      • ワーカーが 2 つ、シャードが 2 つの場合、各ワーカーに 1 つのシャードが割り当てられます。

      • ワーカーが 2 つ、シャードが 3 つの場合、一方のワーカーに 1 つのシャード、もう一方に 2 つのシャードが割り当てられます。

    • リバランス操作は通常 2〜3 分かかります。所要時間は仮想ウェアハウス内のテーブルグループの数に依存します。テーブルグループが多いほど、リバランスにかかる時間が長くなります。リバランス中、書き込み操作は約 15 秒間中断されます。

    • リバランスは非同期で実行されるため、次の SQL ステートメントを実行して実行の進行状況を監視できます:

      SELECT hg_get_rebalance_warehouse_status('<warehouse_name>');

      DOING の戻り値はリバランスが進行中であることを示します。DONE の戻り値はリバランスが完了したことを示します。

計算グループのタイムアウト期間の設定

statement_timeout パラメーターを設定して、セッションレベルまたはデータベースレベルでタイムアウト期間を構成できます。詳細については、「GUC パラメーター」をご参照ください。

仮想ウェアハウスの場合、次のコマンドを実行してタイムアウト期間を設定できます。この構成は、セッションレベルおよびデータベースレベルの構成よりも優先度が低くなります。したがって、まずデータベースレベルの構成をキャンセルする必要があります。

-- データベースレベルの設定をキャンセルする
ALTER DATABASE <db_name> RESET statement_timeout;

-- 仮想ウェアハウスのタイムアウト期間を 600 秒に設定する
CALL hg_alter_warehouse ('<warehouse_name>', <cu>, '{"configs":{"gucs":{"statement_timeout":"600000"}}}');