SQL オブジェクトを 1 つのパッケージにバンドルして 1 つのユニットとして使用することで、PostgreSQL を拡張できます。このページでは、Cloud SQL がサポートする PostgreSQL 拡張機能の構成について説明します。
PostgreSQL 拡張機能を使用する
インストールできるのは、Cloud SQL でサポートされている拡張機能のみです。詳細については、Cloud SQL でサポートされている PostgreSQL の拡張機能をご覧ください。
拡張機能をインストールする
拡張機能は、次の方法でインストールした後に使用します。
- psql ツールで、CREATE EXTENSION コマンドを実行します。
スーパーユーザー権限の要件
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 17 | 3.4.3 |
特定の PostgreSQL メジャー バージョンの場合、CREATE EXTENSION コマンドで VERSION
句を使用して PostGIS 拡張機能バージョンを指定できます。
PostGIS 拡張機能には次の機能が含まれます。
postgis
postgis_raster
postgis_sfcgal
postgis_tiger_geocoder
postgis_topology
address_standardizer
address_standardizer_data_us
詳細については、PostGIS のインストールをご覧ください。
さらに、Cloud SQL for PostgreSQL には、PostGIS を拡張する pgRouting
拡張機能のバージョン 3.3.0 が含まれています。pgRouting
拡張機能は、ネットワークのルーティングと分析を通じて地理空間処理を強化します。
PostGIS と関連拡張機能を最新バージョンに手動でアップグレードできます。PostGIS 拡張機能のアップグレードの詳細については、PostGIS のアップグレードをご覧ください。
データ型拡張機能
拡張機能 | 説明 |
btree_gin | B-tree と同等の動作を実装するサンプル GIN 演算子クラスを提供します。 PostgreSQL 9.6 はバージョン 1.0 を使用します。PostgreSQL 10 はバージョン 1.2 を使用します。他のすべてのバージョンではバージョン 1.3 が使用されます。 |
btree_gist | B-tree と同等の動作を実装する GiST インデックス演算子クラスを提供します。 PostgreSQL 9.6 はバージョン 1.2 を使用します。PostgreSQL 10、11、12、13 はバージョン 1.5 を使用します。PostgreSQL 14 はバージョン 1.6 を使用します。 |
chkpass | 暗号化されたパスワードを保存するためのデータ型 chkpass を実装します。PostgreSQL 9.6、10 はバージョン 1.0 を使用します。他のバージョンではサポートされていません。 |
citext | 大文字と小文字を区別しない文字列型 citext を提供します。PostgreSQL 9.6 はバージョン 1.3 を使用します。PostgreSQL 10 はバージョン 1.4 を使用します。PostgreSQL 11 はバージョン 1.5 を使用します。PostgreSQL 12、13、14 はバージョン 1.6 を使用します。 |
cube | 多次元キューブを表すためのデータ型 cube を実装します。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 データ型を実装します。PostgreSQL 9.6、10 はバージョン 1.4 を使用します。PostgreSQL 11 はバージョン 1.5 を使用します。PostgreSQL 12 はバージョン 1.6 を使用します。PostgreSQL 13 はバージョン 1.7 を使用します。PostgreSQL 14 はバージョン 1.8 を使用します。 |
isn | 一部の国際製品番号付け規則に対応するデータ型を提供します。 PostgreSQL 9.6、10 はバージョン 1.1 を使用します。他のすべてのバージョンはバージョン 1.2 を使用します。 |
ip4r | IPv4 と v6 のアドレス、アドレス範囲に加え、インデックスのサポートに対応するデータ型を提供します。 PostgreSQL はバージョン 2.4.2 を使用します。 |
ltree | 格納されているデータのラベルを階層型ツリー構造で表すためのデータ型 ltree を実装します。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 を含まない整数の配列を操作し、インデックス検索を行う関数と演算子のセットを提供します。 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 に移植します。 PostgreSQL 9.6、10 はバージョン 4.6.1 を使用します。PostgreSQL 11 以降はバージョン 4.7.0 を使用します。 |
pageinspect | データベース ページのコンテンツを低レベルで検査します。このドキュメントの pageinspect もご覧ください。 PostgreSQL 9.6 はバージョン 1.5 を使用します。PostgreSQL 10 はバージョン 1.6 を使用します。PostgreSQL 11、12 はバージョン 1.7 を使用します。PostgreSQL 13、14 はバージョン 1.8 を使用します。 |
pgAudit | 監査データを収集します。
pgAudit のすべてのバージョンの監査ログファイルに設定できる値は、 この拡張機能を Cloud SQL で使用する方法の詳細については、pgAudit を使用して PostgreSQL の監査を行うをご覧ください。 |
pg_background | 任意のコマンドをバックグラウンド ワーカーで実行できます。 Cloud SQL for PostgreSQL はバージョン 1.2 を使用します。 |
pg_bigm | 全文検索を可能にし、全文検索の高速化に 2 グラム(バイグラム)インデックスを使用できるようにします。このドキュメントの pg_bigm もご覧ください。 |
pg_buffercache | 共有バッファ キャッシュ内でリアルタイムで発生していることを調査する方法を提供します。 PostgreSQL 9.6 はバージョン 1.2 を使用します。PostgreSQL 10、11、12、13、14 はバージョン 1.3 を使用します。 |
pg_cron | cron ベースのジョブ スケジューラを提供します。この拡張機能を使用すると、cron 構文を使用してデータベースから直接 PostgreSQL コマンドのスケジュールを設定できます。拡張機能の詳細については、このドキュメントの pg_cron をご覧ください。 PostgreSQL バージョン 10 以降は 1.6.0 を使用します。 |
pgcrypto | PostgreSQL に対応する暗号機能を提供します。 Cloud SQL for PostgreSQL はバージョン 1.3 を使用します。 |
pglogical | PostgreSQL の論理レプリケーションを提供します。論理レプリケーションとデコードの設定をご覧ください。 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 | コンテンツを一から再計算するのではなく、増分変更のみを計算してビューに適用することで、マテリアライズド ビューを最新の状態に保つことができます。 PostgreSQL バージョン 13 以降では、バージョン 1.9 がサポートされます。 |
pg_partman | 時間ベースおよびシリアル番号ベースのテーブル パーティション セットを作成して管理できます。このドキュメントの pg_partman もご覧ください。 PostgreSQL バージョン 14 以降ではバージョン 5.0.1 がサポートされますが、バージョン 14 より前の PostgreSQL でサポートされるのはバージョン 4.7.4 までです。 |
pg_prewarm | 関連データをオペレーティング システムのバッファ キャッシュ、または PostgreSQL バッファ キャッシュのいずれかに読み込むための便利な方法を提供します。 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 | タプルレベルの統計情報を取得する、さまざまな関数を提供します。 PostgreSQL 9.6 はバージョン 1.4 を使用します。他のすべてのバージョンはバージョン 1.5 を使用します。 |
pg_similarity | PostgreSQL で類似性クエリをサポートします。 Cloud SQL for PostgreSQL はバージョン 1.0 を使用します。 |
pg_squeeze | テーブルから未使用のスペースを削除します。必要に応じて、インデックスを使用してテーブルのレコードまたは行(タプル)を並べ替えることもできます。この拡張機能の詳細については、このドキュメントの pg_squeeze をご覧ください。 PostgreSQL バージョン 11 以降はバージョン 1.5 を使用します。 |
pg_stat_statements | 実行されたすべての SQL ステートメントの実行統計を追跡する方法を提供します。 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 | トライグラム照合により英数字の類似性を判断する関数と演算子を提供します。また、類似文字列の高速検索をサポートするインデックス演算子クラスも提供します。 PostgreSQL 9.6、10 はバージョン 1.3 を使用します。PostgreSQL 11、12 はバージョン 1.4 を使用します。PostgreSQL 13 はバージョン 1.5 を使用します。PostgreSQL 14 はバージョン 1.6 を使用します。 |
pgtt | DB2 または Oracle スタイルのグローバル一時テーブルを PostgreSQL データベース内で作成して管理します。 |
pgvector |
PostgreSQL データベースでベクトル エンベディングを保存および検索するためのオープンソースの拡張機能。 |
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 もご覧ください。 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( 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 つのセッション用に読み込むことができます。
dblink
データベース セッション内から、この拡張機能を使用して PostgreSQL データベースに接続し、クエリを実行できます。
現在、この拡張機能は、同じ VPC ネットワーク内の 2 つの Cloud SQL プライベート IP インスタンス、または同じインスタンス内のクロス データベースに対して機能します。
詳細については、PostgreSQL ドキュメントの dblink をご覧ください。
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');
dblink を使用してパスワードなしで接続する
同じユーザーとして同じインスタンスに接続する場合、パスワードなしで接続できます。次に例を示します。
パスワードなしでローカル接続を有効にするには、次のデータベース フラグを設定します。
cloudsql.allow_passwordless_local_connections
ホストを指定せずに接続します。これは、同じインスタンスに接続することを意味します。以下に例を示します。
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_fdw と PL/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 ユーティリティを有効にする手順は次のとおりです。
- psql ツールで、pg_proctab の CREATE EXTENSION コマンドを実行します。
- pg_top をダウンロードして実行します。
- Cloud SQL for PostgreSQL インスタンスに接続する場合は、リモート データベースに接続するための
-r
オプションを追加して指標を取得します。
出力に含まれる次のインスタンス全体の指標には、インスタンス内の他のサポート エージェントとサービスの使用状況が含まれます。
- 負荷の平均
- CPU の状態(% user、nice、system、idid、iowait)
- メモリ(使用済み、空き、キャッシュ)
pg_repack
この拡張機能を使用すると、テーブルとインデックスから肥大化した部分を削除できます。必要に応じて、この拡張機能を使用してオンライン CLUSTER(cluster index 順にテーブルを並べ替える)を実行できます。詳細については、pg_repack のドキュメントをご覧ください。また、Cloud SQL でこの拡張機能を使用するには、ユーザーに権限を追加するための特別な手順が必要です。
cloudsqlsuperuser
ロールを持たないユーザーが拡張機能を使用する場合は、cloudsqlsuperuser
権限を付与する必要があります。詳細については、このドキュメントのスーパーユーザー権限の要件をご覧ください。次の例では、GRANT
コマンドを使用して必要な権限を追加します。
権限の追加例
以の例では、csuper1
は cloudsqlsuperuser
で、testdb
は testuser
が所有するデータベースです。testdb
に pg_repack 拡張機能を作成するには、最初に次のコマンドを実行します。
cloudsqlsuperuser
としてtestdb
に接続します。psql -U csuper1 -d testdb;
データベース オーナー(
testuser,
)をcsuper1
に付与します。GRANT testuser TO csuper1;
次の手順で拡張機能を作成します。
CREATE EXTENSION pg_repack;
testdb
のt1
などのテーブルでpg_repack
コマンドをcsuper1
として実行します。pg_repack -h <hostname> -d testdb -U csuper1 -k -t t1
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_fdw と dblink もご覧ください。
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/Proxy と dblink もご覧ください。
postgresql-hll
この拡張機能は、新しいデータ型 hll
を導入します。HyperLogLog データ構造です。詳細については、postgresql-hll のドキュメントをご覧ください。