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

Hologres:シャードリバランス (Rebalance)

最終更新日:Jun 22, 2026

Hologres V2.0.21 以降では、シャードリバランス操作をトリガーする Rebalance 関数をサポートしています。このトピックでは、Rebalance 関数を使用してシャードをリバランスする方法について説明します。

背景情報

通常、Hologres のワーカーノードはシャードを均等にロードします。しかし、高速リカバリ後などの一部のシナリオでは、シャードがワーカーノード間で不均等に分散されることがあります。この場合、シャードリバランス操作をトリガーしてシャードを再分散させる必要があります。これにより、インスタンス内のすべてのワーカーノードがシャードを均等にロードするようになります。

制限事項

Rebalance 関数は、Hologres V2.0.21 以降でのみサポートされています。お使いのインスタンスのバージョンが V2.0.21 より前の場合は、インスタンスのアップグレード」をご参照いただくか、Hologres のチャットグループに参加してインスタンスのアップグレードをリクエストしてください。詳細については、「オンラインサポートの利用方法」をご参照ください。

コマンド構文

汎用インスタンスとセカンダリインスタンス

汎用インスタンスまたはセカンダリインスタンスでは、Rebalance 関数はワーカーノード間でシャードを再分散します。構文は次のとおりです:

SELECT hg_rebalance_instance();
  • 戻り値:

    • true:シャードリバランス操作が正常にトリガーされました。

    • false:シャードリバランスが不要であることを示します。

    • Error:Pod の障害などが原因で、シャードリバランス操作のトリガーに失敗しました。

  • バランスの取れた状態とは、各ワーカーノードのシャード数の差が最大でも 1 である状態です。例:

    • インスタンスに 2 つのワーカーノードと 2 つのシャードがある場合、各ワーカーノードに 1 つのシャードが割り当てられます。

    • インスタンスに 2 つのワーカーノードと 3 つのシャードがある場合、一方のワーカーノードに 1 つのシャードが、もう一方に 2 つのシャードが割り当てられます。

  • シャードリバランス操作は通常 2〜3 分かかります。実際の所要時間は、インスタンス内のテーブルグループの数によって異なります。テーブルグループが多いほど、リバランスにかかる時間は長くなります。このプロセス中、書き込み操作は約 15 秒間中断されます。

  • シャードリバランスは非同期操作であるため、次の SQL ステートメントを実行して進捗状況を確認できます。

  • SELECT hg_get_rebalance_instance_status();
  • 戻り値:

    • DOING:シャードリバランス操作が進行中です。

    • DONE:シャードリバランス操作が完了しました。

仮想ウェアハウスインスタンス

汎用インスタンスやセカンダリインスタンスとは異なり、仮想ウェアハウスインスタンスはコンピューティングリソースを複数の仮想ウェアハウスに分割できます。したがって、仮想ウェアハウスインスタンスのシャードをリバランスするには、各仮想ウェアハウスを個別にリバランスする必要があります。詳細については、「仮想ウェアハウス内のシャードのリバランス」をご参照ください。

よくある質問

不均衡なシャード分散の特定

クエリを実行すると、負荷はすべてのワーカーノードに均等に分散されるはずです。ワーカーノードにシャードが割り当てられていない場合、その負荷は他のワーカーノードよりも著しく低くなります。

  • バランスの取れたシャード分散の例:次の図は、10 個のワーカーノードを持つインスタンスを示しています。クエリおよび書き込み操作が実行されると、モニタリングダッシュボードには、10 個すべてのワーカーノードで CPU 使用率が類似していることが表示されます。image.png

  • 不均衡なシャード分散の例:ワーカーノードにシャードがない場合、モニタリングダッシュボードには次の図のようなパターンが表示され、1 つのワーカーノードの負荷が他のノードよりもはるかに低いことがわかります。image.png

    次の SQL ステートメントを実行して、どのワーカーノードがシャードをロードしたかを確認します:

    SELECT DISTINCT worker_id FROM hologres.hg_worker_info;
    • 結果の分析:結果は、9 つのワーカーノードのみがシャードをロードしており、1 つはロードしていないことを示しています。

    • アクション:シャードリバランスをトリガーします。操作が完了すると、モニタリングダッシュボードには、以前は十分に活用されていなかったワーカーノードの CPU 使用率が、他のノードに匹敵するレベルまで上昇することが表示されます。image.png

    • 再度クエリを実行して、どのワーカーノードがシャードをロードしたかを確認します。結果は、10 個すべてのワーカーノードがシャードをロードしたことを示します。クエリは、10 個のワーカー ID 値 (例:grgfsfj4wttwn5z) を含む worker_id 列を返します。