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列です。外部キーコンストレインまたはシーケンスはありません。変換後にこれらを削除して再作成します。
テーブルを変換するには
HMコンソールで、 Estate > Postgres に移動し、クラスターを選択します。
Tables タブを選択します。
テーブル行で、3点メニューを開き、 Convert to Tiered Table を選択します。
パーティショニングオプションを入力します。
Partition Column - パーティション化する
DATEまたはTIMESTAMP列Initial Lower Bound - 最初のパーティションの開始日。
アナリティクスオフロード期間 — Iceberg.
にオフロードされるまでにパーティションがホットなままになる時間 リアルタイム分析レプリケーションを有効にする — 有効にすると、ホットパーティションがHTAPテーブルとしてオブジェクトストレージに継続的にレプリケートされます。無効にすると、ホットパーティションはヒープテーブルとして残り、オフロードウィンドウからエージングアウトすると一括オフロードされます。
Partition Increment - 各パーティションの時間間隔。
Minimum Advance Partitions - 最小数
最大事前パーティション - 維持する将来のパーティションの最大数。
Convert to Tiered Table を選択し、変換が完了するまで待ちます。
変換後、テーブルタイプは 階層 に変更されます。テーブルの行を展開すると、個々のパーティションとそのタイプHeap、HTAP、またはIcebergおよび境界式が表示されます。 [ Tables ]タブには、パーティションタイプ間の内訳を含むパーティション分布グラフも表示されます。パーティションのライフサイクルは、変換後にPGD AutoPartitionによって自動的に管理されます。
HMコンソールは、変換後に階層化テーブルを変更するアクションを提供していません。オフロード期間やパーティションのインクリメントなどの設定を変更するには、データベースクライアントで直接bdr.autopartition()
を再実行します。階層化テーブル設定の変更の詳細については、PGDドキュメントの Implementing tiered tables を参照してください。
アナリティクスへの複製#
ヒープテーブルでレプリケーションを有効にして、オブジェクトストレージへの継続的レプリケーションを開始します。テーブルタイプは HTAP に変更され、データの変更はクラスターの事前構成されたデータグループカタログにほぼリアルタイムでストリーミングされます。カタログ名は確認ダイアログに表示されます。
レプリケーションを有効にする前に、テーブルが次の要件を満たしている必要があります。
主キーがあります。
レプリケーションを有効にするには
HMコンソールで、 Estate > Postgres に移動し、クラスターを選択します。
Tables タブを選択します。
テーブル行で、3点メニューを開き、 Enable Replication を選択します。
確認ダイアログを確認し、 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テーブルに変換し、ローカルコピーを切り捨て、分析コピーのみをオブジェクトストレージに残します。確認ダイアログには、データが保存される宛先カタログクラスターの事前構成されたデータグループカタログが表示されます。
テーブルは、オフロードする前に次の要件を満たしている必要があります。
他のテーブルは、それを指す外部キーコンストレインを持つことはできません。
テーブルをオフロードするには
HMコンソールで、 Estate > Postgres に移動し、クラスターを選択します。
Tables タブを選択します。
HTAPテーブル行で、3点メニューを開き、 Offload Table を選択します。
確認ダイアログを確認し、 Offload を選択します。
レプリケーションが無効になると、テーブルタイプが Iceberg
に変更されます。
Icebergテーブルは読み取り専用で、直接書き込みをサポートしていません。
INSERT 、UPDATE 、およびDELETE
操作はサポートされていません。テーブルに再度書き込むには、最初に
HTAP に復元します。
Icebergテーブルからは、次のことができます。
Restore Table — データをローカルストレージに移動します。テーブルは HTAP に戻ります。オブジェクトストレージのコピーは、自動的に削除されません。
トリガーコンパクション — オブジェクトストレージに断片化されたParquetファイルを統合して、クエリパフォーマンスを向上させ、ストレージオーバーヘッドを削減します。
コンパクションのトリガー#
コンパクションを使用して、オブジェクトストレージ内の断片化されたParquetファイルを、より大きな最適化されたファイルに統合します。コンパクションにより、クエリパフォーマンスが向上し、ストレージオーバーヘッドが削減されます。 コンパクションは、 HTAPおよびIcebergテーブルで利用できます。
圧縮をトリガーするには
HMコンソールで、 Estate > Postgres に移動し、クラスターを選択します。
Tables タブを選択します。
テーブル行で、3点メニューを開き、 Trigger Compaction を選択します。
確認ダイアログを確認し、 Trigger Compaction を選択します。