Configuring tiered storage#

Postgresテーブルをオブジェクトストレージにレプリケートしてオフロードし、クラスターからデータを移行せずに標準のPostgres SQLで照会します。 Advanced High Availability AHAおよび分散高可用性DHAは、ハイブリッドマネージャーHMによって管理されるEDB Postgres分散PGDベースのクラスタータイプで、Postgres Analytics Accelerator PGAAがプリインストールおよび自動的に構成されます。

概念、アーキテクチャ、およびリファレンスドキュメントについては、PGDドキュメントの Using tiered storage を参照してください。

クラスターの分析の管理#

AHAおよびDHAクラスターのオブジェクトストレージは、HMインストールで creating a storage secret として構成されます。 HMは、そのオブジェクトストレージによってバッキングされるデータグループごとにIcebergカタログを自動的にプロビジョニングし、アナリティクスの書き込み先として構成します。 PGAAはプリインストールされており、カタログはすぐに使用できます。手動セットアップは必要ありません。 Estate > Catalogs でカタログを表示および管理できます。または、クラスター間のクエリ用に追加の共有カタログを作成できます。詳細は、 Managing catalogs を参照してください。

Actions メニューから Enable Analytics および Disable Analytics を使用して、データグループレベルで分析を制御します。分析を無効にすると、そのデータグループ内のすべてのテーブルでの新しいレプリケーションとオフロード操作ができなくなります。既存のオフロードテーブルにはアクセスしたままで、カタログ構成は保持されます。

テーブルの表示#

クラスターの詳細ビューの テーブル タブには、クラスター内のすべてのテーブルと、そのタイプ、レプリケーションステータス、および使用可能なアクションがリストされます。

!!!note デフォルトでは、edb.collect_table_statistics 構成パラメーターはpgaa に設定され、Icebergテーブルのみの統計を収集します。ヒープテーブルとHTAPテーブルを含めるには、 Edit Cluster > Data Groups > DB Configuration を介してall に設定します。クラスターを再起動する必要はありません。

各テーブルには、次のいずれかのタイプがあります。

  • Heap — PGAAメタデータを含まない標準のPostgresテーブル。

  • HTAP ハイブリッドトランザクションおよび分析処理 - 分析レプリケーションが有効になっているヒープテーブル。データがオブジェクトストレージに継続的にレプリケートされている間、テーブルは完全なトランザクションのままです。 アナリティクスへの複製 を参照してください。

  • Iceberg — オブジェクトストレージに完全に保存されたコールド分析テーブル。ローカルコピーは切り詰められました。 アナリティクスへのオフロード を参照してください。

  • Tiered — PGD AutoPartition によって管理されるパーティションテーブル、コールドパーティションはIcebergです。ホットパーティションは、リアルタイム分析レプリケーションが有効になっている場合はHTAPであり、そうでない場合はヒープです。 階層テーブルへの変換 を参照してください。

テーブル行を選択すると、タブの上部に概要パネルが表示され、そのテーブルのストレージメトリックとして、ディスク上の行数と合計サイズ、およびオブジェクトストレージの行数と合計サイズが表示されます。これらのメトリックは、両方のストレージ階層にわたるテーブルの現在の状態を反映しています。

階層テーブルへの変換#

ヒープテーブルを階層化テーブルに変換して、 PGD AutoPartition によって管理されるレンジパーティションテーブルとして再構成します。コールドパーティションは、分析オフロード期間を過ぎて古くなると、Iceberg形式に自動的にオフロードされます。ホットパーティションはHTAPであり、リアルタイム分析レプリケーションが有効になっている場合はオブジェクトストレージに継続的にレプリケートされ、そうでない場合はヒープとして残ります。

テーブルは、変換する前に次の要件を満たしている必要があります。

  • 主キーがあります。

  • パーティション列は、主キーの一部でもあるDATE またはTIMESTAMP 列です。

  • 外部キーコンストレインまたはシーケンスはありません。変換後にこれらを削除して再作成します。

テーブルを変換するには

  1. HMコンソールで、 Estate > Postgres に移動し、クラスターを選択します。

  2. Tables タブを選択します。

  3. テーブル行で、3点メニューを開き、 Convert to Tiered Table を選択します。

  4. パーティショニングオプションを入力します。

  • Partition Column - パーティション化するDATE またはTIMESTAMP 列

  • Initial Lower Bound - 最初のパーティションの開始日。

  • アナリティクスオフロード期間 — Iceberg.

  • にオフロードされるまでにパーティションがホットなままになる時間 リアルタイム分析レプリケーションを有効にする — 有効にすると、ホットパーティションがHTAPテーブルとしてオブジェクトストレージに継続的にレプリケートされます。無効にすると、ホットパーティションはヒープテーブルとして残り、オフロードウィンドウからエージングアウトすると一括オフロードされます。

  • Partition Increment - 各パーティションの時間間隔。

  • Minimum Advance Partitions - 最小数

  • 最大事前パーティション - 維持する将来のパーティションの最大数。

  1. Convert to Tiered Table を選択し、変換が完了するまで待ちます。

変換後、テーブルタイプは 階層 に変更されます。テーブルの行を展開すると、個々のパーティションとそのタイプHeap、HTAP、またはIcebergおよび境界式が表示されます。 [ Tables ]タブには、パーティションタイプ間の内訳を含むパーティション分布グラフも表示されます。パーティションのライフサイクルは、変換後にPGD AutoPartitionによって自動的に管理されます。

HMコンソールは、変換後に階層化テーブルを変更するアクションを提供していません。オフロード期間やパーティションのインクリメントなどの設定を変更するには、データベースクライアントで直接bdr.autopartition() を再実行します。階層化テーブル設定の変更の詳細については、PGDドキュメントの Implementing tiered tables を参照してください。

アナリティクスへの複製#

ヒープテーブルでレプリケーションを有効にして、オブジェクトストレージへの継続的レプリケーションを開始します。テーブルタイプは HTAP に変更され、データの変更はクラスターの事前構成されたデータグループカタログにほぼリアルタイムでストリーミングされます。カタログ名は確認ダイアログに表示されます。

レプリケーションを有効にする前に、テーブルが次の要件を満たしている必要があります。

  • 主キーがあります。

レプリケーションを有効にするには

  1. HMコンソールで、 Estate > Postgres に移動し、クラスターを選択します。

  2. Tables タブを選択します。

  3. テーブル行で、3点メニューを開き、 Enable Replication を選択します。

  4. 確認ダイアログを確認し、 Enable Replication を選択します。

初期同期が完了すると、テーブルタイプが HTAP に変更され、レプリケーションステータスが Enabled と表示されます。

テーブルがHTAPになると、次のアクションが使用できます。

  • Disable Replication — レプリケーションを停止し、PGAAメタデータを削除し、テーブルをヒープに戻します。以前にオブジェクトストレージにレプリケートされたデータは、自動的に削除されず、カタログに残ります。

  • オフロードテーブル — テーブルをコールドのIcebergテーブルに変換し、ローカルコピーを切り捨てます。

  • トリガーコンパクション — オブジェクトストレージに断片化されたParquetファイルを統合して、クエリパフォーマンスを向上させ、ストレージオーバーヘッドを削減します。

!!!note 以前にレプリケーションが無効になっていたテーブルでレプリケーションを有効にすると、カタログのメタデータが残っているため失敗します。エラーを解決するには、 purge_analytics_target パラメーターを使用してデータベースクライアントで直接レプリケーションを再度有効にします。

CALL pgaa.enable_analytics_replication(<schema>.<table>::regclass, true);

PGAAドキュメントの pgaa.enable_analytics_replication を参照してください。

アナリティクスへのオフロード#

HTAPテーブルをオフロードしてコールドのIcebergテーブルに変換し、ローカルコピーを切り捨て、分析コピーのみをオブジェクトストレージに残します。確認ダイアログには、データが保存される宛先カタログクラスターの事前構成されたデータグループカタログが表示されます。

テーブルは、オフロードする前に次の要件を満たしている必要があります。

  • 他のテーブルは、それを指す外部キーコンストレインを持つことはできません。

テーブルをオフロードするには

  1. HMコンソールで、 Estate > Postgres に移動し、クラスターを選択します。

  2. Tables タブを選択します。

  3. HTAPテーブル行で、3点メニューを開き、 Offload Table を選択します。

  4. 確認ダイアログを確認し、 Offload を選択します。

レプリケーションが無効になると、テーブルタイプが Iceberg に変更されます。 Icebergテーブルは読み取り専用で、直接書き込みをサポートしていません。 INSERT 、UPDATE 、およびDELETE 操作はサポートされていません。テーブルに再度書き込むには、最初に HTAP に復元します。

Icebergテーブルからは、次のことができます。

  • Restore Table — データをローカルストレージに移動します。テーブルは HTAP に戻ります。オブジェクトストレージのコピーは、自動的に削除されません。

  • トリガーコンパクション — オブジェクトストレージに断片化されたParquetファイルを統合して、クエリパフォーマンスを向上させ、ストレージオーバーヘッドを削減します。

コンパクションのトリガー#

コンパクションを使用して、オブジェクトストレージ内の断片化されたParquetファイルを、より大きな最適化されたファイルに統合します。コンパクションにより、クエリパフォーマンスが向上し、ストレージオーバーヘッドが削減されます。 コンパクションは、 HTAPおよびIcebergテーブルで利用できます。

圧縮をトリガーするには

  1. HMコンソールで、 Estate > Postgres に移動し、クラスターを選択します。

  2. Tables タブを選択します。

  3. テーブル行で、3点メニューを開き、 Trigger Compaction を選択します。

  4. 確認ダイアログを確認し、 Trigger Compaction を選択します。