PostgreSQL の拡張機能を構成する

SQL オブジェクトを 1 つのパッケージにバンドルして 1 つのユニットとして使用することで、PostgreSQL を拡張できます。このページでは、Cloud SQL がサポートする PostgreSQL 拡張機能の構成について説明します。

PostgreSQL 拡張機能を使用する

Cloud SQL でサポートされている拡張機能のみをインストールできます。詳細については、Cloud SQL でサポートされている PostgreSQL の拡張機能をご覧ください。

拡張機能をインストールする

拡張機能は、次の方法でインストールした後に使用します。

スーパーユーザー権限の要件

Cloud SQL では、拡張機能は cloudsqlsuperuser ロールの一部であるユーザーのみが作成できます。新しい PostgreSQL インスタンスを作成する場合、デフォルトの postgres ユーザーが作成されます(ただし、ユーザーのパスワードを設定する必要があります)。デフォルトの postgres ユーザーは cloudsqlsuperuser ロールの一部です。詳細については、PostgreSQL ユーザーについてをご覧ください。

データベース間の接続

接続先のインスタンスは、接続元のインスタンスと同じ VPC ネットワーク内にある必要があります。

クラスタ インスタンスの場合、Google Cloud コンソールで [信頼できるクライアント証明書を必須にする] オプションを選択することはできません。また、同じインスタンス内のデータベースに接続する場合、ホストを localhost または 127.0.0.1 には設定できません。代わりに、Google Cloud コンソールのインスタンスに表示される IP アドレスを使用する必要があります。

新しい拡張機能のサポートをリクエストする

Cloud SQL で独自の拡張機能は作成できません。

拡張機能のサポートをリクエストするには、未解決の問題で [+1] をクリックするか、新しい問題を作成します。未解決の Cloud SQL の問題のリストと新しい問題の作成については、プロダクト別の問題報告や機能リクエストの検索と作成をご覧ください。

Cloud SQL でサポートされている PostgreSQL 拡張機能

具体的な拡張機能の使用方法については、下表のいずれかのドキュメント リンクをご覧ください。

Cloud SQL がサポートする PostgreSQL 拡張機能は、次のカテゴリに分類できます。

PostGIS

PostGIS 拡張機能は、Cloud SQL for PostgreSQL のすべてのメジャー バージョンでサポートされています。

次の表に、各 Cloud SQL for PostgreSQL バージョンの PostGIS 拡張機能のバージョンを示します。

Cloud SQL for PostgreSQL のバージョン PostGIS 拡張機能
PostgreSQL 9.6 3.2.5
PostgreSQL 10 3.2.5
PostgreSQL 11 3.2.5
PostgreSQL 12 3.2.5
PostgreSQL 13 3.4.0
PostgreSQL 14 3.4.0
PostgreSQL 15 3.4.0
PostgreSQL 16 3.4.0

特定の PostgreSQL メジャー バージョンの場合、CREATE EXTENSION コマンドで VERSION 句を使用して PostGIS 拡張機能バージョンを指定できます。

PostGIS 拡張機能には次の機能が含まれます。

詳細については、PostGIS のインストールをご覧ください。

さらに、Cloud SQL for PostgreSQL には、PostGIS を拡張する pgRouting 拡張機能のバージョン 3.3.0 が含まれています。pgRouting 拡張機能は、ネットワークのルーティングと分析を通じて地理空間処理を強化します。

PostGIS と関連拡張機能を最新バージョンに手動でアップグレードできます。PostGIS 拡張機能のアップグレードの詳細については、PostGIS のアップグレードをご覧ください。

データ型拡張機能

拡張機能 説明
btree_gin B-tree と同等の動作を実装するサンプル GIN 演算子クラスを提供します。
Cloud SQL for PostgreSQL 9.6 はバージョン 1.0 を使用します。PostgreSQL 10 はバージョン 1.2 を使用します。他のすべてのバージョンではバージョン 1.3 が使用されます。
btree_gist B-tree と同等の動作を実装する GiST インデックス演算子クラスを提供します。
Cloud SQL for PostgreSQL 9.6 はバージョン 1.2 を使用します。PostgreSQL 10、11、12、13 はバージョン 1.5 を使用します。PostgreSQL 14 はバージョン 1.6 を使用します。
chkpass 暗号化されたパスワードを保存するためのデータ型 chkpass を実装します。
Cloud SQL for PostgreSQL 9.6、10 はバージョン 1.0 を使用します。他のバージョンではサポートされていません。
citext 大文字と小文字を区別しない文字列型 citext を提供します。
Cloud SQL for PostgreSQL 9.6 はバージョン 1.3 を使用します。PostgreSQL 10 はバージョン 1.4 を使用します。PostgreSQL 11 はバージョン 1.5 を使用します。PostgreSQL 12、13、14 はバージョン 1.6 を使用します。
cube 多次元キューブを表すためのデータ型 cube を実装します。
Cloud SQL for PostgreSQL 9.6、10 はバージョン 1.2 を使用します。PostgreSQL 11 はバージョン 1.3 を使用します。PostgreSQL 12、13 はバージョン 1.4 を使用します。PostgreSQL 14 はバージョン 1.5 を使用します。
hstore 1 つの PostgreSQL 値に Key-Value ペアのセットを格納するための hstore データ型を実装します。
Cloud SQL for PostgreSQL 9.6、10 はバージョン 1.4 を使用します。PostgreSQL 11 はバージョン 1.5 を使用します。PostgreSQL 12 はバージョン 1.6 を使用します。PostgreSQL 13 はバージョン 1.7 を使用します。PostgreSQL 14 はバージョン 1.8 を使用します。
isn 一部の国際製品番号付け規則に対応するデータ型を提供します。
Cloud SQL for PostgreSQL 9.6、10 はバージョン 1.1 を使用します。他のすべてのバージョンではバージョン 1.2 が使用されます。
ip4r IPv4 と v6 のアドレス、アドレス範囲に加え、インデックスのサポートに対応するデータ型を提供します。
Cloud SQL for PostgreSQL ではバージョン 2.4.2 が使用されます。
ltree 格納されているデータのラベルを階層型ツリー構造で表すためのデータ型 ltree を実装します。
Cloud SQL for PostgreSQL 9.6、10、11、12 はバージョン 1.1 を使用します。PostgreSQL 13、14 はバージョン 1.2 を使用します。
lo 大きいオブジェクトを管理するためのサポート(LO や BLOB とも呼ばれる)。
Cloud SQL for PostgreSQL はバージョン 1.1 を使用します。
postgresql-hll 新しいデータ型 hll を導入します。これは、HyperLogLog データ構造です。このドキュメントの postgresql-hll もご覧ください。
Cloud SQL for PostgreSQL はバージョン 2.16 を使用します。
prefix プレフィックス マッチングとインデックス サポートを提供します。
Cloud SQL for PostgreSQL はバージョン 1.2.0 を使用します。

言語拡張機能

拡張機能 説明
plpgsql 関数、手続き、トリガー作成用の読み込み可能なプロシージャル言語。この言語を使用して、DO ブロック内のコードを直接実行することも可能です。
Cloud SQL for PostgreSQL はバージョン 1.0 を使用します。
plv8 JavaScript を有効にするためのプロシージャ言語を提供します。
Cloud SQL for PostgreSQL ではバージョン 3.2.2 が使用され、このバージョンでは V8 JavaScript エンジン バージョン 11.5 が使用されます。

その他の拡張機能

拡張機能 説明
amcheck リレーション構造の論理的な整合性を検証する関数を提供し、pg_amcheck アプリケーションが破損をチェックできるようにします。
auto_explain トラブルシューティングなどのため、実行速度が遅いステートメントの実行プランを自動的にロギングします。EXPLAIN コマンドの機能を自動的に実行します。このドキュメントの auto_explain もご覧ください。
autoinc フィールドを自動的にインクリメントするための関数を提供します。このトリガーによって、シーケンスの次の値が整数フィールドに格納されます。
Cloud SQL for PostgreSQL ではバージョン 1.0 が使用されます。
bloom ブルーム フィルタに基づいてインデックスにアクセスするためのメソッドを提供します。ブルーム フィルタとは、ある要素がある集合のメンバーであるかどうかを判断するために使用できる、スペース効率の高いデータ構造です。
Cloud SQL for PostgreSQL ではバージョン 1.0 が使用されます。
dblink データベース セッション内から PostgreSQL データベースに接続する関数を提供します。このドキュメントの dblink もご覧ください。
Cloud SQL for PostgreSQL はバージョン 1.2 を使用します。
decoderbufs 出力データを、Debezium 用に調整されたプロトコル バッファとして配信する PostgreSQL の論理デコーダ。
dict_int 整数のインデックス作成を制御する、全文検索用のアドオン辞書テンプレート。
Cloud SQL for PostgreSQL はバージョン 1.0 を使用します。
earthdistance 地球上の大圏距離を計算する 2 つの方法を提供します。
Cloud SQL for PostgreSQL はバージョン 1.1 を使用します。
fuzzystrmatch 文字列間の類似性と相違性を特定するためのいくつかの関数を提供します。
Cloud SQL for PostgreSQL はバージョン 1.1 を使用します。
google_ml_integration ベクトル エンベディングを生成し、大規模言語モデル(LLM)を使用してテキスト プロンプトを数値ベクトルに変換します。
Cloud SQL for PostgreSQL はバージョン 1.2 を使用します。
insert_username 現在のユーザーの名前をテキスト フィールドに保存するための関数を提供します。これを使用すると、誰がデータベース テーブルの行を最後に変更したかを追跡できます。
Cloud SQL for PostgreSQL ではバージョン 1.0 が使用されます。
intagg 整数型のアグリゲータと列挙子を提供します。
Cloud SQL for PostgreSQL はバージョン 1.1 を使用します。
intarray null を含まない整数の配列を操作し、インデックス検索を行う関数と演算子のセットを提供します。
Cloud SQL for PostgreSQL 9.6、10、11、12 はバージョン 1.2 を使用します。PostgreSQL 13 はバージョン 1.3 を使用します。PostgreSQL 14 ではバージョン 1.5 が使用されます。
moddatetime 現在の時刻を timestamp フィールドに格納するための関数を提供します。これを使用すると、データベース テーブル内の行が最後に変更された時刻を追跡できます。
Cloud SQL for PostgreSQL ではバージョン 1.0 が使用されます。
oracle_fdw Oracle データベースに簡単かつ効率的にアクセスするための外部データラッパー(fdw)を提供します。
Cloud SQL for PostgreSQL はバージョン 1.2 を使用します。
orafce Oracle データベースの関数とパッケージのサブセットをエミュレートする関数と演算子を提供します。これらの関数は、Oracle アプリケーションを PostgreSQL に移植するために使用します。
Cloud SQL for PostgreSQL 9.6 と 10 ではバージョン 4.6.1 が使用されます。PostgreSQL 11 以降ではバージョン 4.7.0 が使用されます。
pageinspect データベース ページのコンテンツを低レベルで検査します。このドキュメントの pageinspect もご覧ください。
Cloud SQL for PostgreSQL 9.6 はバージョン 1.5 を使用します。PostgreSQL 10 はバージョン 1.6 を使用します。PostgreSQL 11、12 はバージョン 1.7 を使用します。PostgreSQL 13、14 はバージョン 1.8 を使用します。
pgAudit 監査データを収集します。

pgAudit のすべてのバージョンの監査ログファイルに設定できる値は、READWRITEFUNCTIONROLEDDLMISCALL です。バージョン 1.4.2~1.6.1 の場合は、MISC_SET の値も設定できます。

この拡張機能を Cloud SQL で使用する方法の詳細については、pgAudit を使用して PostgreSQL の監査を行うをご覧ください。

pg_background 任意のコマンドをバックグラウンド ワーカーで実行できます。
Cloud SQL for PostgreSQL ではバージョン 1.2 が使用されます。
pg_bigm 全文検索を可能にし、全文検索の高速化に 2 グラム(バイグラム)インデックスを使用できるようにします。このドキュメントの pg_bigm もご覧ください。
pg_buffercache 共有バッファ キャッシュ内でリアルタイムで発生していることを調査する方法を提供します。
Cloud SQL for PostgreSQL 9.6 はバージョン 1.2 を使用します。PostgreSQL 10、11、12、13、14 はバージョン 1.3 を使用します。
pg_cron cron ベースのジョブ スケジューラを提供します。この拡張機能を使用すると、cron 構文を使用してデータベースから直接 PostgreSQL コマンドのスケジュールを設定できます。拡張機能の詳細については、このドキュメントの pg_cron をご覧ください。
Cloud SQL for PostgreSQL バージョン 10 以降ではバージョン 1.6.0 が使用されます。
pgcrypto PostgreSQL に対応する暗号機能を提供します。
Cloud SQL for PostgreSQL はバージョン 1.3 を使用します。
pglogicalPostgreSQL の論理レプリケーションを提供します。論理レプリケーションとデコードの設定をご覧ください。
Cloud SQL for PostgreSQL はバージョン 2.4.3 を使用します。
pgfincore オペレーティング システムのディスク キャッシュ メモリ内のページを PostgreSQL から管理するための一連の関数。このドキュメントの pgfincore もご覧ください。
Cloud SQL for PostgreSQL ではバージョン 1.3.1 が使用されます。
pg_freespacemap 空き領域マップ(FSM)を調べます。このドキュメントの pg_freespacemap もご覧ください。
Cloud SQL for PostgreSQL はバージョン 1.2 を使用します。
pg_hint_plan SQL コメントの簡単な説明であるヒントを使用して、PostgreSQL の実行プランを改善できます。このドキュメントの pg_Hint_plan もご覧ください。
pgoutput このプラグインは、変更データ キャプチャ用の論理レプリケーションによって使用されます。pgoutput はデフォルトのプラグインであるため、Cloud SQL for PostgreSQL のすべてのバージョンでサポートされています。
pg_ivm コンテンツを一から再計算するのではなく、増分変更のみを計算してビューに適用することで、マテリアライズド ビューを最新の状態に保つことができます。
Cloud SQL for PostgreSQL バージョン 13 以降ではバージョン 1.9 がサポートされます。
pg_partman 時間ベースおよびシリアル番号ベースのテーブル パーティション セットを作成して管理できます。このドキュメントの pg_partman もご覧ください。
Cloud SQL for PostgreSQL バージョン 14 以降ではバージョン 5.0.1 がサポートされますが、バージョン 14 より前の Cloud SQL for PostgreSQL でサポートされるのはバージョン 4.7.4 までです。
pg_prewarm 関連データをオペレーティング システムのバッファ キャッシュ、または PostgreSQL バッファ キャッシュのいずれかに読み込むための便利な方法を提供します。
Cloud SQL for PostgreSQL 9.6、10 はバージョン 1.1 を使用します。PostgreSQL 11、12、13、14 はバージョン 1.2 を使用します。
pg_proctab Cloud SQL for PostgreSQL で pg_top を使用し、オペレーティング システムのプロセス テーブルからレポートを生成できます。このドキュメントの pg_proctab もご覧ください。
pg_repack テーブルとインデックスから肥大化した部分を削除できます。必要に応じて、オンライン CLUSTER(cluster index 順にテーブルを並べ替える)を実行できます。このドキュメントの pg_repack もご覧ください。
Cloud SQL for PostgreSQL ではバージョン 1.5.0 が使用されます。
pgrowlocks 指定した表の行のロック情報を提供します。
Cloud SQL for PostgreSQL はバージョン 1.2 を使用します。
pgstattuple タプルレベルの統計情報を取得する、さまざまな関数を提供します。
Cloud SQL for PostgreSQL 9.6 はバージョン 1.4 を使用します。他のすべてのバージョンではバージョン 1.5 が使用されます。
pg_similarity PostgreSQL で類似性クエリをサポートします。
Cloud SQL for PostgreSQL ではバージョン 1.0 が使用されます。
pg_squeeze テーブルから未使用のスペースを削除します。必要に応じて、インデックスを使用してテーブルのレコードまたは行(タプル)を並べ替えることもできます。この拡張機能の詳細については、このドキュメントの pg_squeeze をご覧ください。
Cloud SQL for PostgreSQL バージョン 11 以降ではバージョン 1.5 が使用されます。
pg_stat_statements 実行されたすべての SQL ステートメントの実行統計を追跡する方法を提供します。
Cloud SQL for PostgreSQL 9.6 はバージョン 1.4 を使用します。PostgreSQL 10、11 はバージョン 1.6 を使用します。PostgreSQL 12 はバージョン 1.7 を使用します。PostgreSQL 13 はバージョン 1.8 を使用します。PostgreSQL 14 はバージョン 1.9 を使用します。
pgTAP PL/pgSQL と PL/SQL で記述された、PostgreSQL の単体テスト フレームワークを提供します。
Cloud SQL for PostgreSQL ではバージョン 1.3.0 が使用されます。
pg_trgm トライグラム照合により英数字の類似性を判断する関数と演算子を提供します。また、類似文字列の高速検索をサポートするインデックス演算子クラスも提供します。
Cloud SQL for PostgreSQL 9.6、10 はバージョン 1.3 を使用します。PostgreSQL 11、12 はバージョン 1.4 を使用します。PostgreSQL 13 はバージョン 1.5 を使用します。PostgreSQL 14 はバージョン 1.6 を使用します。
pgtt

DB2 または Oracle スタイルのグローバル一時テーブルを PostgreSQL データベース内で作成して管理します。
Cloud SQL for PostgreSQL ではバージョン 3.0 が使用されます。

pgvector

PostgreSQL データベースでベクトル エンベディングを保存および検索するためのオープンソースの拡張機能。
Cloud SQL for PostgreSQL バージョン 12 以降ではバージョン 0.7.0 がサポートされますが、Cloud SQL for PostgreSQL バージョン 11 でサポートされるのはバージョン 0.5.1 までです。

pg_visibility テーブルの可視性マップ(VM)とページレベルの可視性情報を検査する手段を提供します。このドキュメントの pg_visibility もご覧ください。
Cloud SQL for PostgreSQL はバージョン 1.2 を使用します。
pg_wait_sampling 待機イベントのサンプリング統計情報を収集し、サーバーのプロセス用に待機イベントデータを提供します。Cloud SQL for PostgreSQL ではバージョン 1.1.5 が使用されます。
PL/Proxy PostgreSQL データベース間でのリモート プロシージャ コールを可能にするプロシージャル言語ハンドラ。オプションでシャーディングを含みます。このドキュメントの PL/Proxy もご覧ください。
Cloud SQL for PostgreSQL ではバージョン 2.11.0 が使用されます。
postgres_fdw 複数のインスタンス内または複数インスタンスにわたる外部データラッパーを作成できます。このドキュメントの postgres_fdw もご覧ください。
Cloud SQL for PostgreSQL 9.6、10、11、12、13 はバージョン 1.0 を使用します。PostgreSQL 14 はバージョン 1.1 を使用します。
postgresql_anonymizer

PostgreSQL データベースの個人情報(PII)や機密データをマスキングまたは置換します。詳細については、postgresql_anonymizer をご覧ください。

Cloud SQL for PostgreSQL ではバージョン 1.0.0 が使用されます。

postgresql_hll

集合の基数を見積もる HyperLogLog(hll)データ構造を提供します。

Cloud SQL for PostgreSQL ではバージョン 2.18 が使用されます。

rdkit ケモインフォマティクスと機械学習のソフトウェアのコレクション。この拡張機能を使用すると、分子構造の比較、操作、識別を行うことができます。
Cloud SQL for PostgreSQL はバージョン 4.2.0 を使用します。
refint 外部キーの制約、参照テーブル、被参照テーブルをチェックする関数が含まれています。また、この拡張機能はサーバー プログラミング インターフェース(SPI)の情報も提供します。Cloud SQL for PostgreSQL はバージョン 1.0 を使用します。
sslinfo インスタンスに接続されたときに現在のクライアントによって提供された SSL 証明書に関する情報を提供します。
Cloud SQL for PostgreSQL はバージョン 1.2 を使用します。
tablefunc テーブル(複数行)を返すさまざまな関数が含まれています。
Cloud SQL for PostgreSQL ではバージョン 1.0 が使用されます。
tcn データベース テーブルの内容の変更をリスナーに通知するトリガー関数を提供します。
Cloud SQL for PostgreSQL ではバージョン 1.0 が使用されます。
temporal_tables 時系列テーブルをサポートします。時系列テーブルは、データベースの観点から行が有効な期間を記録します。
Cloud SQL for PostgreSQL ではバージョン 1.2.2 が使用されます。
tsm_system_rows SELECT コマンドの TABLESAMPLE 句で使用できるテーブル サンプリング メソッド SYSTEM_ROWS を提供します。
Cloud SQL for PostgreSQL はバージョン 1.0 を使用します。
tsm_system_time SELECT コマンドの TABLESAMPLE 句で使用できるテーブル サンプリング メソッド SYSTEM_TIME を提供します。
Cloud SQL for PostgreSQL はバージョン 1.0 を使用します。
unaccent 語彙素からアクセント(分音符)を削除するテキスト検索辞書。
Cloud SQL for PostgreSQL はバージョン 1.1 を使用します。
uuid-ossp 標準アルゴリズムの 1 つを使用して Universally Unique Identifier(UUID)を生成する関数を提供します。
Cloud SQL for PostgreSQL はバージョン 1.1 を使用します。

PostgreSQL 拡張機能の詳細

このセクションでは、上記の表に示したサポートされている PostgreSQL の拡張機能の一部についてさらに詳しく説明します。

auto_explain

インスタンスでこの拡張機能を使用するには、cloudsql.enable_auto_explain フラグを on に設定します。フラグの設定方法とこの拡張機能でサポートされるフラグの詳細については、データベース フラグを構成するをご覧ください。

この拡張機能で有効にする実行プランのログに関連付けられているロギングデータとイベントを表示するには、Cloud Logging のドキュメントをご覧ください。

また、cloudsqlsuperuser ロールのみを持つユーザーの場合は、load コマンドを使用して、この拡張機能を 1 つのセッション用に読み込むことができます。

データベース セッション内から、この拡張機能を使用して PostgreSQL データベースに接続し、クエリを実行できます。

現在、この拡張機能は、同じ VPC ネットワーク内の 2 つの Cloud SQL プライベート IP インスタンス、または同じインスタンス内のクロス データベースに対して機能します。

詳細については、PostgreSQL ドキュメントの dblink をご覧ください。

データベースに接続、または別のユーザーとして同じインスタンスに接続するには、パスワードを指定する必要があります。例として(ただし、本番環境には使用できません)、コード スニペットを次に示します。


  SELECT * FROM dblink (
    'dbname=name port=1234 host=host user=user password=password',
    'select id, name from table' \
  ) AS t(id int, name text);

また、接続だけを設定する場合の例として、コード スニペットを以下に示します(本番環境には使用できません)。

  SELECT dblink_connect('dbname=dblinktest user=postgres host=name_or_ip password=xxx');

同じユーザーとして同じインスタンスに接続する場合、パスワードなしで接続できます。次に例を示します。

  1. パスワードなしでローカル接続を有効にするには、次のデータベース フラグを設定します。
    cloudsql.allow_passwordless_local_connections

  2. ホストを指定せずに接続します。これは、同じインスタンスに接続することを意味します。以下に例を示します。

    SELECT *
      FROM dblink('dbname=finance user=alice',
                  'select income from revenue')
        AS revenue(income integer);
    

    結果は次のようになります。

          income
          --------
          1000
          (1 row)
    

同じインスタンス内のデータベースに接続する場合、ホストを localhost または 127.0.0.1 には設定できません。代わりに、Google Cloud コンソールのインスタンスに表示される IP アドレスを使用する必要があります。

このドキュメントの postgres_fdwPL/Proxy もご覧ください。

pageinspect

この拡張可能は、データベース ページのコンテンツを低レベルで検査します。詳細については、PostgreSQL ドキュメントの pageinspect をご覧ください。

pg_bigm

この拡張機能は全文検索を可能にし、全文検索の高速化に 2 グラム(バイグラム)インデックスを使用できるようにします。

インスタンスでこの拡張機能を使用するには、cloudsql.enable_pg_bigm フラグを on に設定します。次のフラグもサポートされます。

  • pg_bigm.enable_recheck
  • pg_bigm.gin_key_limit
  • pg_bigm.similarity_limit

フラグの設定方法とこの拡張機能でサポートされるフラグの詳細については、データベース フラグを構成するをご覧ください。

pg_cron

インスタンスで pg_cron の使用を開始するには、cloudsql.enable_pg_cron フラグを on に設定します。フラグの設定方法とこの拡張機能でサポートされるフラグの詳細については、データベース フラグを構成するをご覧ください。

ジョブはバックグラウンド ワーカーとして構成されています。このため、バックグラウンド ワーカーの数を調整するには、PostgreSQL の標準的な方法(max_worker_processes フラグなど)を使用する必要があります。

Cloud SQL では、この拡張機能はバックグラウンド ワーカー モードでサポートされます。libpq インターフェースはサポートされません。したがって、この拡張機能に直接関連する信頼認証は不要です。

pgfincore

この拡張機能には、オペレーティング システムのディスク キャッシュ メモリ内のページを PostgreSQL から管理するための関数が含まれています。詳細については、pgfincore のドキュメントをご覧ください。

pg_freespacemap

この拡張機能は、空き容量マップ(FSM)を調べます。詳細については、PostgreSQL ドキュメントの pg_freespacemap をご覧ください。

pg_hint_plan

インスタンスでこの拡張機能を使用するには、cloudsql.enable_pg_hint_plan フラグを on に設定します。フラグの設定方法とこの拡張機能でサポートされるフラグの詳細については、データベース フラグを構成するをご覧ください。

また、cloudsqlsuperuser ロールを持つユーザーに対してのみ、load コマンドを使用して、1 つのセッションでこの拡張機能を読み込むことができます。

pg_partman

この拡張機能を使用すると、時間ベースおよびシリアルベースのテーブル パーティション セットを作成、管理できます。

Cloud SQL では、この拡張機能にはパーティションの自動メンテナンスのバックグラウンド ワーカーは含まれていません。代わりに、Cloud Scheduler などを使用して、定期的にメンテナンス関数を呼び出すことでメンテナンスを推進できます。

pg_proctab

pg_proctab 拡張機能を使用して pg_top ユーティリティを有効にする手順は次のとおりです。

  1. psql ツールで、pg_proctab の CREATE EXTENSION コマンドを実行します。
  2. pg_top をダウンロードして実行します。
  3. Cloud SQL for PostgreSQL インスタンスに接続する場合は、リモート データベースに接続するための -r オプションを追加して指標を取得します。

出力に含まれる次のインスタンス全体の指標には、インスタンス内の他のサポート エージェントとサービスの使用状況が含まれます。

  • 負荷の平均
  • CPU の状態(% user、nice、system、idid、iowait)
  • メモリ(使用済み、空き、キャッシュ)

pg_repack

この拡張機能を使用すると、テーブルとインデックスから肥大化した部分を削除できます。必要に応じて、この拡張機能を使用してオンライン CLUSTER(cluster index 順にテーブルを並べ替える)を実行できます。詳細については、pg_repack のドキュメントをご覧ください。また、Cloud SQL でこの拡張機能を使用するには、ユーザーに権限を追加するための特別な手順が必要です。

cloudsqlsuperuser ロールを持たないユーザーが拡張機能を使用する場合は、cloudsqlsuperuser 権限を付与する必要があります。詳細については、このドキュメントのスーパーユーザー権限の要件をご覧ください。次の例では、GRANT コマンドを使用して必要な権限を追加します。

権限の追加例

以の例では、csuper1cloudsqlsuperuser で、testdbtestuser が所有するデータベースです。testdb に pg_repack 拡張機能を作成するには、最初に次のコマンドを実行します。

  1. cloudsqlsuperuser として testdb に接続します。

    psql -U csuper1 -d testdb;
    
  2. データベース オーナー(testuser,)を csuper1 に付与します。

    GRANT testuser TO csuper1;
    
  3. 次の手順で拡張機能を作成します。

    CREATE EXTENSION pg_repack;
    
  4. testdbt1 などのテーブルで pg_repack コマンドを csuper1 として実行します。

    pg_repack -h <hostname> -d testdb -U csuper1 -k -t t1
    
  5. pg_repack ジョブが完了したら、手順 2 で実行した権限を取り消します。

     REVOKE testuser FROM csuper1;
    

pg_repack コマンドが次のエラーで失敗する場合があります。
"ERROR: query failed: SSL SYSCALL error: EOF detected"

このエラーが発生した場合は、TCP キープアライブを小さい値に設定してから、pg_repack コマンドを実行してください。詳細については、接続タイムアウト(Compute Engine)をご覧ください。

pg_squeeze

この拡張機能は、テーブルから未使用のスペースを削除します。必要に応じて、インデックスを使用してテーブルのタプルを並べ替えることもできます。この拡張機能をインスタンス上で使用するには、cloudsql.enable_pg_squeeze フラグを on に設定します。

この拡張機能では、追加情報を write-ahead log(WAL)に書き込むという方法で論理デコードもサポートされています。この機能を拡張機能に対して有効にするには、cloudsql.logical_decoding フラグを on に設定することによって wal_level 構成パラメータを logical 以上に設定します。

この拡張機能を使用するには、max_replication_slots フラグの値を設定する必要があります。このフラグの値をまだ指定していない場合は、値を 1 に設定してください。それ以外の場合は、このフラグの設定値に 1 を加算してください。

フラグの設定方法と、この拡張機能でサポートされるフラグの詳細については、データベース フラグを構成するをご覧ください。

pgtt

インスタンスでこの拡張機能を使用するには、pgtt.enabled フラグを on に設定します。フラグの設定方法とこの拡張機能でサポートされるフラグの詳細については、データベース フラグを構成するをご覧ください。

pg_visibility

この拡張機能は、テーブルの可視性マップ(VM)とページレベルの可視性情報を検査する手段を提供します。詳細については、PostgreSQL ドキュメントの pg_visibility をご覧ください。

PL/Proxy

この拡張機能は、PostgreSQL データベース間でのリモート プロシージャ コールを可能にするプロシージャル言語ハンドラです。オプションでシャーディングを含みます。

詳細については、PL/Proxy のドキュメントをご覧ください。

接続されるインスタンスは、接続するインスタンスと同じ VPC ネットワーク内にある必要があります。また、Google Cloud コンソールで、クラスタ インスタンスの [SSL 接続のみ許可] ボタンは選択できません。

同じインスタンス内のデータベースに接続する場合、ホストを localhost または 127.0.0.1 には設定できません。代わりに、Google Cloud コンソールのインスタンスに表示される IP アドレスを使用する必要があります。

このドキュメントの postgres_fdwdblink もご覧ください。

postgresql_anonymizer

インスタンスでこの拡張機能を使用するには、cloudsql.enable_anon フラグを on に設定します。フラグの設定方法とこの拡張機能でサポートされるフラグの詳細については、データベース フラグを構成するをご覧ください。

postgres_fdw

この拡張機能を使用すると、他の(「外部」)PostgreSQL データベースのテーブルを現在のデータベースの「外部」テーブルとして公開できます。このテーブルは、ローカルのテーブルとほぼ同じように使用できます。詳細については、PostgreSQL ドキュメントの postgres_fdw をご覧ください。

この拡張機能は、同じ VPC ネットワーク内の 2 つの Cloud SQL プライベート IP インスタンス、または同じインスタンス内のクロス データベースに対して機能します。

同じインスタンス内のデータベースに接続する場合、ホストを localhost または 127.0.0.1 には設定できません。代わりに、Google Cloud コンソールのインスタンスに表示される IP アドレスを使用する必要があります。

また、外部データが保存されているインスタンスの場合は、Google Cloud コンソールで [SSL 接続のみを許可する] オプションを選択できます。[信頼できるクライアント証明書を必須にする] オプションを選択することはできません。postgres_fdw 外部データラッパーのオーナーにできるのは cloudsqlsuperuser のみです。

このドキュメントの PL/Proxydblink もご覧ください。

postgresql-hll

この拡張機能は、新しいデータ型 hll を導入します。HyperLogLog データ構造です。詳細については、postgresql-hll のドキュメントをご覧ください。