データベース

Cloud SQL が PostgreSQL 13 をサポート

Data Management

※この投稿は米国時間 2020 年 11 月 6 日に、Google Cloud blog に投稿されたものの抄訳です。

このたび、PostgreSQL、MySQL、SQL Server に対応したフルマネージド データベース サービスである Cloud SQL が、新たに PostgreSQL 13 をサポートすることとなりました。コミュニティでの一般提供のすぐ後に PostgreSQL 13 が利用できるようになるので、PostgreSQL の優れた最新機能にアクセスできることはもちろん、手間のかかる運用上の作業は Cloud SQL に任せて、チームはアプリケーションをすばやく配信することに注力できます。

PostgreSQL 13 が提供する数多くの新機能により、パフォーマンスの向上や、継続的な取り組みの一環としてのパーティショニング機能の強化だけにとどまらず、モニタリング機能やインデックス効率も改善します。主な機能をいくつかご紹介します。

  • パーティショニングとプルーニングの追加ケースをサポート: PostgreSQL の直近 2 バージョンのパーティション分割テーブルで継続的に行ってきた改善策の一環として、パーティションのプルーニングと直接結合の新しいケースが今回新たに採用されています。新しいケースには、パーティションの境界がぴったり一致しない場合のパーティション分割テーブル間の結合などがあります。さらに、パーティション分割テーブルの BEFORE の行レベルのトリガーがサポートされるようになり、行の値をパーティショニング用の式として使用できるようになりました。

  • インクリメンタル ソート: ソートは高いパフォーマンスが要求されるタスクであり、この領域が少しでも改善されると大きな効果があります。今回 PostgreSQL 13 にはインクリメンタル ソートが採用されています。これは、クエリの初期段階のソートを活用して、ソートされていない増分フィールドのみを並べ替えることで、ソートがが済んでいるブロックがメモリ内に収まる可能性を高め、それによってパフォーマンスの向上を図るというものです。

  • ハッシュ集約を効率化: 以前のバージョンでは、ハッシュ テーブルがメモリに収まるかどうかによって、計画段階でハッシュ集約機能を使用できるかどうかが決定されていました。新しいバージョンでは、メモリ内のスペースに関係なく、コスト分析に基づいてハッシュ集約機能の使用有無を決定します。

  • B-tree インデックスの作業効率が向上しました。これは、重複値を排除して保存容量を削減することにより可能になりました。

  • バキューム処理: データベースが正常に動作するうえで、バキュームは不可欠な操作です。とりわけ要求の厳しい重要なワークロードの場合に欠かせません。バキュームではデッドタプルが占有していたストレージを再利用し、今後の使用に備えて可視性マップ内にカタログ化します。PostgreSQL 13 では、パフォーマンスの改善と自動化の強化が行われています。

    • バキューム処理を高速化: 複数のインデックスを並列にバキュームすることで、バキューム処理の実行時間が短縮されます。

    • 自動バキューム: (既存の更新コマンドと削除コマンドに加え)挿入によって自動バキュームをトリガーできるようになりました。これで可視性マップが常に更新されるようになります。

  • モニタリング機能: EXPLAIN からの WAL 使用統計参照、ロギング オプションの強化、共有メモリと LRU バッファの使用状況をモニタリングするシステム表示の刷新など、多数。

  • WITH TIESFETCH FIRST に追加: FETCH FIRST WITH TIES は、ORDER BY 句に従って結果セットの最後尾に結び付く追加の行を返します。これによりページングが容易になり、処理が簡略化されるとともにステートメントの数を減らすことができます。

Cloud SQL により、PostgreSQL 13 が迅速かつ安全に提供する機能のメリットを享受できます。自動的なパッチ適用と更新やメンテナンス制御の機能により、アップグレードに伴うリスクを軽減し、マイナー バージョンを最新の状態に維持することができます。

さらに、このバージョンは、エンタープライズ ワークロードをサポートできるように Cloud SQL の最新機能と完全に統合されています。これには、セキュリティ強化のための IAM データベース認証のほか、コンプライアンス要件に対応するための監査ログ、データの保護強化のためのポイントインタイム リカバリなどがふくまれます。

IAM データベース認証

PostgreSQL と Cloud Identity and Access Management(Cloud IAM)との統合によって、従来のデータベース パスワードの代わりに同じ Cloud IAM 認証情報が使用されるようになり、ユーザー管理と認証プロセスが簡素化されます。

Cloud SQL IAM データベース認証では認証ワークフローが統合されるので、管理者はユーザー アクセスのモニタリングと管理を簡単かつシンプルに行えます。特に、要求の厳しい環境や規模の大きい環境で他の Google Cloud データベース サービスと統合する場合に一貫性が高まります。

監査ロギング

Cloud SQL で新たに有効になった監査ロギングは、政府、金融、ISO の認証要件を遵守する必要がある場合に役立ちます。pgaudit 拡張機能により、今後の調査や監査に必要なレベルの粒度で監査ログを作成することができます。ログに記録されるステートメント クラスを指定することで、ログに記録されるステートメントを柔軟に制御できます。

ポイントインタイム リカバリ

ポイントインタイム リカバリ(PITR)を使用すると、管理者は、人的ミスや重大な影響を及ぼすイベントが発生した場合にバックアップと WAL ファイルを使用して、特定のポイントインタイムにおけるインスタンスの状態を復元できます。PITR によって追加のデータ保護機能が提供され、過去 7 日間の任意のポイントインタイムにおけるインスタンスの状態を新しいインスタンスとして復元することが可能です。Cloud SQL で新しい PostgreSQL 13 インスタンスを作成すると、デフォルトでポイントインタイム リカバリが有効になります。

PostgreSQL 13 スタートガイド

Cloud SQL を使用して新しい PostgreSQL 13 インスタンスをデプロイするには、データベース バージョンのプルダウン メニューから PostgreSQL 13 を選択します。

PostgreSQL 13.jpg

Cloud SQL for PostgreSQL 13 について詳しくは、こちらのドキュメントをご覧ください

Cloud SQL では、引き続きユーザーに最新のバージョンと機能をご利用いただきながら、ニーズに応じた最高水準の可用性、セキュリティ、統合性を提供していく予定です。Google Cloud の各データベース エンジンの更新に関する情報に今後もご注目ください。


- Google Cloud Platform プロダクト マネージャー Maayan Rossmann