このトピックでは、ホットデータとコールドデータの階層ストレージを実装するメリットと、この機能が PolarDB for PostgreSQL でどのように機能するかについて説明します。アクセスや更新の頻度が低いデータを OSS にダンプして階層ストレージを実装することで、ストレージを大幅に節約できます。
メリット
コールドデータの階層ストレージを有効にすると、ストレージの単価は ESSD PL1 ディスクの約 90% 低くなります。料金の詳細については、「コールドデータの階層ストレージの課金ルール」をご参照ください。
PolarDB for PostgreSQL のコールドデータ階層ストレージ機能には、次のメリットがあります。
使いやすさ
SQL の透過性: すべての SQL 操作は透過的です。コードを修正する必要はありません。OSS テーブルでのフェデレーションクエリがサポートされています。OSS に保存されたデータは、作成、読み取り、更新、削除 (CRUD) 操作をサポートします。
インデックスの透過性: インデックスやマテリアライズドビューなどのオブジェクトにデータアーカイブポリシーを設定できます。これらの操作は透過的です。
高い柔軟性
複数の階層ストレージポリシーがサポートされています。インデックスやマテリアライズドビューを含むテーブル単位、パーティション単位、または指定されたラージオブジェクト (LOB) フィールド単位でデータをアーカイブできます。これらのポリシーを組み合わせて柔軟な構成にすることもできます。
優れたパフォーマンス
この機能は優れたクエリパフォーマンスを提供します。ユーザー定義関数 (UDF) 内の論理オブジェクトキャッシュ、共有ページキャッシュ、ファイル永続化キャッシュの 3 層キャッシュ設計を使用しています。この設計により、OSS へのアクセスリクエスト数が削減され、読み取りおよび書き込みレイテンシーの影響が最小限に抑えられます。
幅広いシナリオ
汎用、時空間、および時系列データのアーカイブをサポートします。たとえば、時空間軌跡や高精度マップなどのデータをアーカイブして、ストレージコストを大幅に削減できます。
安全性と信頼性
OSS に保存されたコールドデータは、バックアップとリカバリもサポートします。これにより、バックアップコストが削減され、高可用性 (HA) が保証されます。
コールドデータはアーカイブ後にアクセスレイテンシーが増加します。このため、頻繁な更新や書き込みは推奨されません。OSS に保存するデータは慎重に選択する必要があります。
適用性
バージョン要件
PolarDB for PostgreSQL クラスターでサポートされているバージョン:
PostgreSQL 16、マイナーエンジンバージョン 2.0.16.9.6.0 以降。
PostgreSQL 14、マイナーエンジンバージョン 2.0.14.10.21.0 以降。
サポートされているリージョン
エリア | リージョン |
中国 | 中国 (杭州) |
中国 (上海) | |
中国 (深セン) | |
中国 (北京) | |
その他 | シンガポール |
階層ストレージの仕組み
階層ストレージは、コスト効率の高い OSS をデータストレージオプションとして使用するため、コスト削減につながります。 PolarDB for PostgreSQL は、Elastic Block Storage (EBS) および OSS と組み合わせて使用することもでき、特定の使用パターンに基づいてホットデータとコールドデータの自動ストレージ階層化を実現します。これにより、PolarDB は SQL CRUD 操作中に透過性を維持し、多階層のキャッシュシステムを活用することでパフォーマンスの低下を最小限に抑えます。階層ストレージのアーキテクチャは次のとおりです。

コールドストレージモード
コールドストレージを使用すると、データテーブル、インデックス、またはマテリアライズドビューを OSS にダンプできます。これによりディスク使用量が最小限に抑えられ、ストレージを大幅に節約できます。コールドストレージ後、CRUD 操作を指定するすべての SQL 文は、追加の変更なしで透過的になります。
PolarDB は、次のコールドストレージモードをサポートしています。
テーブル全体のデータを OSS に保存し、インデックスをクラウドディスクに保持します。これにより、アクセスパフォーマンスを高く維持しながらストレージコストを削減します。
LOB 型の列とセカンダリ列を OSS に保存します。
期限切れのパーティションを OSS に保存し、ホットパーティションをクラウドディスクに保持します。これは典型的な階層ストレージモードです。

シナリオ
OSS のアクセスレイテンシーは、クラウドディスクの数百倍です。したがって、データが OSS にダンプされると、そのアクセスパフォーマンスは低下します。しかし、コールドストレージデータをクエリまたは更新する際に、かなり高いパフォーマンスを必要とするお客様もいます。この要件を満たすために、PolarDB for PostgreSQL は次の 2 種類のストレージ階層化をサポートしています。
期限切れのパーティションを OSS にダンプし、ホットパーティションをクラウドディスクに保持します。これにより、クエリパフォーマンスへの影響が最小限に抑えられ、ストレージコストを削減できます。詳細については、「パーティションテーブルのコールドストレージ」をご参照ください。
クラウドディスク内で頻繁にアクセスおよび更新されるデータにマテリアライズドキャッシュを提供し、データ全体を OSS に保存します。マテリアライズドキャッシュ内のデータのライフサイクルは、そのアクセス頻度によって決まります。これにより、優れたパフォーマンスを実現し、ストレージコストを削減できます。詳細については、「コールドデータのマテリアライズドキャッシュ」をご参照ください。