PostgreSQLは強力なオープンソースのデータベースシステムです。 PostgreSQL 17は2024年9月に正式にリリースされました。 PostgreSQL 17では、パフォーマンス、論理レプリケーション、開発者エクスペリエンス、モニタリング、アクセス許可、およびセキュリティのディメンションから改善と最適化が行われます。 ApsaraDB RDS for PostgreSQLはPostgreSQL 17を完全にサポートしています。 ApsaraDB RDS for PostgreSQLは、Community EditionのPostgreSQL 17に基づいて、セキュリティ、O&Mパフォーマンス、費用対効果を向上させ、より多くのカーネル機能と拡張機能をサポートしてビジネス要件を満たします。
有効日
2024年10月17日
説明
PostgreSQL 17のハイライト
PostgreSQL 17では、パフォーマンス、論理レプリケーション、開発者エクスペリエンス、モニタリング、アクセス許可、およびセキュリティのディメンションから改善と最適化が行われます。
パフォーマンス
真空
新しいデータ構造TIDStoreは、デッドタプルを記録するために導入されます。 これにより、VACUUMの効率が向上し、メモリ使用量が削減されます。 TIDStoreは、内部使用のための基数ツリーと呼ばれる。
VACUUMのメモリ上限は1 GBではなくなりました。 インデックスを含むテーブルを削除すると、VACUUMは無効タプルをメモリに記録します。 VACUUMのメモリ上限に達すると、インデックスファイルのスキャンがトリガーされます。 VACUUMのメモリ上限を変更すると、インデックスファイルのスキャン数を減らし、VACUUMプロセスを高速化し、I/Oリソースを節約できます。
WAL
先行書き込みログ (WAL) ロックの管理は、高度な同時修正のパフォーマンスを向上させるために最適化されています。
オプティマイザ
StatisticsとWITH句を同時に使用して最適化を深めることができます。
in句でBツリーインデックスを使用できる場合、クエリ速度が大幅に向上します。
システムは、NOT NULL制約を含むフィールドの冗長なIS NOT NULL制約を自動的に削除します。
論理レプリケーション
論理レプリケーションスロットフェールオーバー機能がサポートされています。
データベースエンジンのバージョンをPostgreSQL 17からそれ以降のバージョンにアップグレードするときに、論理レプリケーションスロットを保持できます。
pg_createsubscriberという名前のバイナリツールが追加され、物理レプリカを新しい論理レプリカに変換できます。多数のサブトランザクションが関与するシナリオにおける論理復号の性能が改善される。
モニタリング
pg_stat_checkpointerという名前のビューが追加され、チェックポイントの統計が提供されます。 これは、チェックポイントが保存される頻度とリソース使用量を効果的に監視するのに役立ちます。pg_wait_eventsという名前のビューが追加され、待機イベントの原因が表示されます。EXPLAINステートメントを実行して、オプティマイザのメモリ使用量を照会できます。
権限とセキュリティ
テーブルレベルの
MAINTAIN権限が追加され、pg_maintainユーザーが保持されます。 これにより、VACUUMやREINDEXなどのテーブル操作に対する権限を管理できます。sslnegotiationパラメーターを追加して、直接トランスポート層セキュリティ (TLS) ハンドシェイクを有効にします。 これは、ネットワーク往復時間 (RTT) を減少させる。
開発者体験
JSONのサポートが改善されました。
JSON_TABLE()関数が追加されました。 この関数は、JSONデータをSQL文のテーブルに変換します。JSON()、JSON_SCALAR()、およびJSON_SERIALIZE()JSONコンストラクター関数が追加されました。JSON_EXISTS()、JSON_QUERY()、およびJSON_VALUE()のJSONクエリ関数が追加されました。
pg_column_toast_chunk_id()関数は、特定のTOASTのチャンクIDを取得するために提供されます。
PostgreSQL 17を実行するApsaraDB RDS for PostgreSQLインスタンスのメリットは何ですか?
ApsaraDB RDS for PostgreSQLは、PostgreSQLのCommunity Editionと完全に互換性があります。 ApsaraDB RDS for PostgreSQLは、クラウドネイティブアーキテクチャを使用し、ソフトウェアとハードウェアを最適化して、安定性、信頼性、費用対効果の高いデータベースサービスを提供します。 ApsaraDB RDS for PostgreSQLは、シナリオ固有のビジネス要件を満たすための幅広い拡張機能を提供します。
ApsaraDB RDS for PostgreSQLはPostgreSQL 17を完全にサポートしています。 ApsaraDB RDS for PostgreSQLの自己開発機能は、PostgreSQL 17と互換性があります。 ApsaraDB RDS for PostgreSQLには、独自に開発したさまざまなカーネル機能もあり、PostgreSQLのバージョンを強化してシナリオ固有のビジネス要件を満たすことができます。
コスト
(新機能) 一般ESSDのデータアーカイブ
ApsaraDB RDS for PostgreSQLインスタンスは、テーブルスペースと外部ファイルシステムを使用してObject Storage Service (OSS) バケットにアクセスします。 DDLステートメントを実行して、エンタープライズSSD (ESSD) とOSSバケット間でデータを転送できます。 RDSインスタンスのデータアーカイブ機能を有効にすると、OSSの大容量ストレージ、セキュリティ、費用対効果、および高信頼性に基づいて、RDSインスタンスのデータをOSSバケットに保存できます。 データアーカイブ機能を使用すると、アクセス頻度の低いデータにアクセスできます。 ESSDのデータアーカイブ機能を有効にすると、ストレージコストはパフォーマンスレベル1 (PL1) ESSDのストレージコストよりも80% に低くなります。 詳細については、「一般的なESSDのデータアーカイブ機能の使用」をご参照ください。
シナリオ: RDSインスタンスには、アクセス頻度の低い大量のデータが含まれています。
TablespaceレベルのTPC
透過ページ圧縮 (TPC) 機能は、バッファプール内のページデータをリアルタイムで圧縮および解凍します。 データは、データがディスクに書き込まれるときに自動的に圧縮され、データがディスクから読み出されるときに解凍される。 圧縮および解凍プロセスは、ユーザには知覚できない。 TPC機能は、ストレージ使用量を減らし、RDSインスタンスの読み取りパフォーマンスを向上させるために開発されています。 この機能により、ディスクI/Oとストレージの使用量が削減され、キャッシュの効率が向上し、データを圧縮することでデータ転送が高速化されます。
TPCの利点: 読み取りシナリオでは、ストレージコストが平均で約50% 削減され、I/O使用量が平均で約50% 削減され、1秒あたりのトランザクション (TPS) が最大100% 増加します。 詳細については、「TPC機能の使用」をご参照ください。
シナリオ: RDSインスタンスには大量のデータが含まれており、多数の読み取り要求を処理する必要があります。
AP機能
(新機能) rds_duckdb拡張機能を提供する高性能OLAPエンジン
ApsaraDB RDS for PostgreSQLのrds_duckdb拡張機能は、効率的でリソースに優しいDuckDBに基づいて開発され、分析クエリ機能を強化しています。 拡張機能を使用して、ApsaraDB RDS for PostgreSQLインスタンスのオンプレミステーブルを列指向テーブルとしてエクスポートし、分析処理クエリアクセラレーション (AP) 機能を有効にすることができます。 これにより、複雑なクエリが大幅に加速されます。 RDSインスタンスの拡張機能を有効にすると、RDSインスタンスのデータを効率的に分析およびクエリできます。 クエリのパフォーマンスが大幅に向上しました。 詳細については、「rds_duckdb拡張機能を使用したAPクエリの高速化」をご参照ください。
シナリオ: 複雑で分析的なデータクエリを高速化したい場合。
セキュリティ
TDE
すべての暗号化および復号化操作はメモリ内で実行されます。 メモリ内のデータは平文であり、ディスク内のデータは暗号文である。 これにより、ディスクが盗まれたときのデータ漏洩を防ぎます。 データベースの使用モードは、互換性の問題を防ぐために変更されません。 きめ細かい暗号化は、データのセキュリティを確保し、データの暗号化と復号化によるパフォーマンスの低下を最小限に抑え、デフォルトの暗号化を有効にします。 詳細については、「TDEの設定」をご参照ください。
シナリオ: データを暗号化するか、特定のセキュリティコンプライアンス要件を満たす必要があります。
O&M
キャッシュの削除
キャッシュ削除機能は、マルチテーブルシナリオでのPostgreSQLの永続接続のメモリ使用量を削減します。 PostgreSQLのバックエンドプロセスがテーブルにアクセスするたびに、テーブルのメタデータがオンプレミスデバイスにキャッシュされ、キャッシュはプロアクティブにリリースされません。 これにより、後続のディスクアクセスが減少します。 その結果、永続的な接続は、多数のキャッシュを生成し、メモリ不足 (OOM) エラーを引き起こす可能性がある。 詳細については、「キャッシュ削除機能の使用」をご参照ください。
シナリオ: ワークロードは、多数の永続的な接続が存在するSaaS (software as a service) シナリオに関与しています。
SQLスロットリング
SQLスロットリング機能を使用して、同時SQL文の最大数を制限し、データベースの過度の負荷を防ぎ、データベースの安定性と信頼性を確保できます。 詳細については、「rds_ccl拡張機能を使用したSQLスロットリングの実行」をご参照ください。
シナリオ: ワークロードは、同時実行性の高いアクセス、悪意のある攻撃防止、リソース使用量制御などのシナリオに関与しています。
自己開発またはサードパーティの拡張機能
ApsaraDB RDS for PostgreSQLは、拡張機能を提供するさまざまな自社開発およびサードパーティの拡張機能をサポートしています。 詳細については、「サポートされている拡張機能」をご参照ください。 例:
pgvector: サードパーティのオープンソースベクトル検索拡張機能です。 この拡張機能は、ベクトルデータの保存、ベクトル類似性検索の実行、およびAIサービスの基盤となるデータの強化に使用できます。
Ganos: Ganosは、Alibaba Cloudによって開発された時空間エンジンです。 Ganosは、ApsaraDB RDS for PostgreSQLに一連のデータ型、関数、およびストアドプロシージャを提供し、空間データまたは時空データを効率的に保存、インデックス、クエリ、分析、および計算します。
常時機密データベース: Alibaba Cloudが開発した機能です。 この機能は、機密データ列を暗号化して、データを送信、計算、暗号文で保存できるようにします。 この機能により、プラットフォームのセキュリティO&M、機密データのコンプライアンス、マルチソースデータ統合など、さまざまなシナリオでのデータセキュリティの問題を効果的に解決できます。
index_adviser: Alibaba Cloudが開発した拡張機能です。 拡張機能は、特定のワークロードのクエリパフォーマンスを向上させるためにインデックスを作成する必要がある列を決定するのに役立ちます。
oss_fdw: Alibaba Cloudによって開発された拡張機能で、OSSバケットからRDSインスタンスにデータをインポートするために使用できます。 拡張機能は、RDSインスタンスからOSSバケットにデータをエクスポートするためにも使用できます。
pgbouncer: これは、RDSインスタンスへの接続を最適化し、リソース使用量を改善するために使用されるサードパーティのオープンソース軽量接続プールです。 アプリケーションがPostgreSQLデータベースに接続する必要がある場合、PgBouncerは接続プール内の既存のデータベース接続を再利用できます。 これは、頻繁な接続確立および閉鎖による性能オーバーヘッドを防止する。 接続再利用メカニズムにより、データベースサーバーの負荷が大幅に軽減され、アプリケーションの応答速度と同時実行パフォーマンスが向上します。 この機能は、多数の短期間の接続が存在し、接続が頻繁に確立および閉鎖されるシナリオに適しています。
pg_jiebaこれは、Alibaba Cloudの一部の機能に組み込まれたサードパーティのオープンソース拡張機能です。 この拡張機能は、中国語のフルテキスト検索に使用され、カスタムデータライブラリをサポートします。
PostgreSQL 17を実行するRDSインスタンスの使用
データベースエンジンのバージョンをPostgreSQL 17にアップグレードする
ApsaraDB RDS for PostgreSQLは、データベースエンジンのバージョンをPostgreSQL 17にアップグレードするのに役立つblue-greenデプロイモードとローカルアップグレードモードを提供しています。
青緑色のデプロイモードでは、[切断なし] 設定方法を使用して、RDSインスタンスのワークロードを中断することなくアップグレードの実現可能性を確認できます。 Cutover構成方法を使用して、サービスを停止することなくデータベースエンジンのバージョンをアップグレードできます。 アップグレードが完了すると、元のRDSインスタンスのエンドポイントが新しいRDSインスタンスのエンドポイントに自動的に変更されます。 アップグレードはワークロードには影響しません。
ローカルアップグレードモードでは、新しいRDSインスタンスは作成されません。 アップグレード後、元のRDSインスタンスは新しいメジャーエンジンバージョンを実行し、元の注文、名前、タグ、パラメーター設定、課金方法、CloudMonitorのアラートルール、およびバックアップ設定を継承します。
詳細については、「メジャーバージョンのアップグレード」をご参照ください。
PostgreSQL 17を実行するRDSインスタンスの作成
詳細については、「ApsaraDB RDS for PostgreSQL インスタンスの作成」をご参照ください。