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

Hologres:圧縮 (ベータ版)

最終更新日:Feb 28, 2026

大量のオフラインデータをインポートした後、または多数の deleteupdate 操作を実行した後、データファイルの断片化により、読み取り/書き込みパフォーマンスが低下する可能性があります。このような場合、圧縮操作を実行できます。圧縮は、複数のデータファイルをより大きなファイルにマージし、データストレージ構造を再編成して、読み取り/書き込み効率を向上させます。このトピックでは、Hologres で圧縮を実行する方法について説明します。

背景情報

Hologres は、データ書き込みに LSM-Tree に似たデータ構造を使用しています。すべてのデータは、追記専用方式でストレージに書き込まれます。この構造は、ランダム書き込みをシーケンシャル書き込みに変換し、書き込みスループットを最適化します。データファイルは、圧縮によってより大きなファイルにマージする必要があります。

Hologres は、次の 2 種類の圧縮をサポートしています。

  • 自動圧縮

    Hologres は、最大 5 レベルの階層型自動圧縮を使用しています。あるレベルに 5 つを超えるファイルが含まれている場合、圧縮は自動的にトリガーされます。結果のファイルは次のレベルに移動します。たとえば、レベル 0 が 5 つのファイルに達すると、それらは自動的にマージされます。マージされたファイルのデフォルトの最大サイズは 64 MB です。64 MB を超える場合、複数のファイルが作成され、レベル 1 に移動します。以下に示します。

    image.png

  • フル圧縮

    自動圧縮は、同じレベル内のファイルのみをマージし、レベルをまたいでマージすることはありません。フル圧縮は、すべてのレベルのすべてのファイルを新しいファイルにマージします。各ファイルのデフォルトの最大サイズは 64 MB で、最終レベルに配置されます。

制限事項

  • Hologres V2.1 以降のみが、手動でのフル圧縮のトリガーをサポートしています。ご利用のインスタンスが以前のバージョンを実行している場合は、インスタンスをスペックアップする か、Hologres ユーザーグループに参加してスペックアップをリクエストできます。詳細については、「オンラインサポートをさらに利用するにはどうすればよいですか?」をご参照ください。

  • 列指向テーブルとハイブリッド行指向・列指向テーブルのみが、手動でのフル圧縮をサポートしています。

  • ハイブリッド行指向・列指向テーブルの場合、フル圧縮は列のストア部分にのみ適用されます。

使用方法

  • シナリオ:

    以下のシナリオで手動でフル圧縮をトリガーして、小さなファイルをマージし、クエリパフォーマンスを向上させることができます。

    • 大量のオフラインデータをインポートした後。

    • 多数の delete または update 操作を実行した後。

    説明

    フル圧縮は、I/O および CPU リソースを大量に消費します。書き込みが少ない期間に実行できます。通常、実行には 10 分以上かかります。

  • 構文:

    SELECT hologres.hg_full_compact_table(
      '<schema_name.table_name>'
      [,'max_file_size_mb=<value>']
    );
  • 説明:

    パラメーター名

    説明

    必須

    デフォルト

    schema_name.table_name

    圧縮するテーブルの名前。

    はい

    なし

    max_file_size_mb

    (必要がない限り、この値を変更しないでください。) フル圧縮後に生成されるファイルの MB 単位の最大サイズ。値は正の整数である必要があります。

    この値を低く設定しすぎると、ファイルが多すぎることになり、クエリの速度が低下します。

    いいえ

    64

  • 例:

    • テーブル public.lineitem でフル圧縮を実行できます。

      SELECT hologres.hg_full_compact_table( 'public.lineitem');
    • テーブル public.lineitem でフル圧縮を実行し、最大出力ファイルサイズを 256 MB に設定できます。

      SELECT hologres.hg_full_compact_table(
       'public.lineitem',
       'max_file_size_mb=256'
      );

Serverless Computing を使用した圧縮の実行

詳細については、「Serverless Computing を使用した圧縮タスクの実行」をご参照ください。