Azure Database for PostgreSQL - Single Server の PostgreSQL 拡張機能PostgreSQL extensions in Azure Database for PostgreSQL - Single Server

PostgreSQL では拡張機能を使用してデータベースの機能を拡張することができます。PostgreSQL provides the ability to extend the functionality of your database using extensions. 拡張機能により、関連する複数の SQL オブジェクトを 1 つのパッケージにまとめて、1 つのコマンドでデータベースに読み込んだり、データベースから削除したりできます。Extensions allow for bundling multiple related SQL objects together in a single package that can be loaded or removed from your database with a single command. データベースに読み込まれた拡張機能は、組み込み機能と同じように動作します。After being loaded in the database, extensions can function as do built-in features. PostgreSQL 拡張機能の詳細については、「 Packaging Related Objects into an Extension (拡張機能への関連オブジェクトのパッケージ化)」をご覧ください。For more information on PostgreSQL extensions, see Packaging Related Objects into an Extension.

PostgreSQL 拡張機能の使用方法How to use PostgreSQL extensions

PostgreSQL 拡張機能を使用するには、その拡張機能がデータベースにインストールされている必要があります。PostgreSQL extensions must be installed in your database before you can use them. 特定の拡張機能をインストールするには、psql ツールから  CREATE EXTENSION  コマンドを実行して、パッケージ化されたオブジェクトをデータベースに読み込みます。To install a particular extension, run the CREATE EXTENSION command from psql tool to load the packaged objects into your database.

Azure Database for PostgreSQL で現在サポートされている主要な拡張機能のサブセットを次に示します。Azure Database for PostgreSQL currently supports a subset of key extensions as listed below. ここにない拡張機能はサポートされていません。Azure Database for PostgreSQL サービスでは、独自の拡張機能を作成することはできません。Extensions beyond the ones listed are not supported; you cannot create your own extension with Azure Database for PostgreSQL service.

Azure Database for PostgreSQL でサポートされる拡張機能Extensions supported by Azure Database for PostgreSQL

Azure Database for PostgreSQL で現在サポートされている標準的な PostgreSQL 拡張機能を次の表に示します。The following tables list the standard PostgreSQL extensions that are currently supported by Azure Database for PostgreSQL. この情報は、SELECT * FROM pg_available_extensions;を実行して確認することもできます。This information is also available by running SELECT * FROM pg_available_extensions;.

データ型の拡張機能Data types extensions

拡張機能Extension 説明Description
chkpasschkpass 自動暗号化パスワードのデータ型を提供します。Provides a data type for auto-encrypted passwords.
citextcitext 大文字と小文字が区別されない文字列型を提供します。Provides a case-insensitive character string type.
cubecube 多次元キューブのデータ型を提供します。Provides a data type for multidimensional cubes.
hstorehstore キー/値のペアのセットを格納するデータ型を提供します。Provides a data type for storing sets of key/value pairs.
isnisn 国際対応の製品番号規格のデータ型を提供します。Provides data types for international product numbering standards.
ltreeltree 階層ツリー状の構造体のデータ型を提供します。Provides a data type for hierarchical tree-like structures.

関数の拡張機能Functions extensions

拡張機能Extension 説明Description
earthdistanceearthdistance 地球の表面にある大圏距離を計算するための手段を提供します。Provides a means to calculate great-circle distances on the surface of the Earth.
fuzzystrmatchfuzzystrmatch 文字列間の類似点と相違点を特定する関数を提供します。Provides several functions to determine similarities and distance between strings.
intarrayintarray 整数の null を含まない配列を操作する関数と演算子を提供します。Provides functions and operators for manipulating null-free arrays of integers.
pgcryptopgcrypto 暗号化関数を提供します。Provides cryptographic functions.
pg_partmanpg_partman 時刻または ID によってパーティション テーブルを管理します。Manages partitioned tables by time or ID.
pg_trgmpg_trgm trigram 一致に基づいて英数字テキストの類似性を特定する関数と演算子を提供します。Provides functions and operators for determining the similarity of alphanumeric text based on trigram matching.
tablefunctablefunc クロス集計を含む、テーブル全体を操作する関数を提供します。Provides functions that manipulate whole tables, including crosstab.
uuid-osspuuid-ossp 汎用一意識別子 (UUID) を生成します。Generates universally unique identifiers (UUIDs).
orafceorafce 商用データベースからエミュレートされている関数およびパッケージのサブセットを提供します。Provides a subset of functions and packages emulated from commercial databases.

フルテキスト検索の拡張機能Full-text search extensions

拡張機能Extension 説明Description
dict_intdict_int 整数に対するテキスト検索ディクショナリのテンプレートを提供します。Provides a text search dictionary template for integers.
unaccentunaccent 語彙からアクセント記号 (分音記号) を削除するテキスト検索辞書。A text search dictionary that removes accents (diacritic signs) from lexemes.

インデックス型の拡張機能Index Types extensions

拡張機能Extension 説明Description
btree_ginbtree_gin 特定のデータ型に対して B ツリーのような動作を実装するサンプル GIN 演算子クラスを提供します。Provides sample GIN operator classes that implement B-tree like behavior for certain data types.
btree_gistbtree_gist B ツリーを実装する GiST インデックス演算子クラスを提供します。Provides GiST index operator classes that implement B-tree.

言語の拡張機能Language extensions

拡張機能Extension 説明Description
plpgsqlplpgsql PL/pgSQL 読み込み可能な手続き型言語。PL/pgSQL loadable procedural language.

その他の拡張機能Miscellaneous extensions

拡張機能Extension 説明Description
pg_buffercachepg_buffercache リアルタイムで共有バッファー キャッシュの動作を確認する手段を提供します。Provides a means for examining what's happening in the shared buffer cache in real time.
pg_prewarmpg_prewarm 関係データをバッファー キャッシュに読み込む方法を提供します。Provides a way to load relation data into the buffer cache.
pg_stat_statementspg_stat_statements サーバーで実行されるすべての SQL ステートメントの実行統計を追跡する手段を提供します。Provides a means for tracking execution statistics of all SQL statements executed by a server. (この拡張機能に関する注意事項は下記を参照)。(See below for a note on this extension).
pgrowlockspgrowlocks 行レベルのロックに関する情報を表示するための手段を提供します。Provides a means for showing row-level locking information.
pgstattuplepgstattuple タプル レベルの統計を表示するための手段を提供します。Provides a means for showing tuple-level statistics.
postgres_fdwpostgres_fdw 外部 PostgreSQL サーバーに格納されているデータへのアクセスに使用される外部データ ラッパーです。Foreign-data wrapper used to access data stored in external PostgreSQL servers. (この拡張機能に関する注意事項は下記を参照)。(See below for a note on this extension).
hypopghypopg CPU やディスク コストのない仮定のインデックスを作成する手段の提供。Provides a means of creating hypothetical indexes that don't cost CPU or disk.
dblinkdblink データベース セッション内から他の PostgreSQL データベースへの接続をサポートするモジュール。A module that supports connections to other PostgreSQL databases from within a database session. (この拡張機能に関する注意事項は下記を参照)。(See below for a note on this extension).

PostGIS 拡張機能PostGIS extensions

拡張機能Extension 説明Description
PostGIS、postgis_topology、postgis_tiger_geocoder、postgis_sfcgalPostGIS, postgis_topology, postgis_tiger_geocoder, postgis_sfcgal PostgreSQL の空間および地理なオブジェクト。Spatial and geographic objects for PostgreSQL.
address_standardizer、address_standardizer_data_usaddress_standardizer, address_standardizer_data_us 構成要素へのアドレスの解析に使用されます。Used to parse an address into constituent elements. ジオコーディング アドレス正規化の手順をサポートするために使用されます。Used to support geocoding address normalization step.
pgroutingpgrouting PostGIS/PostgreSQL 地理空間データベースを拡張して、地理空間ルーティング機能を提供します。Extends the PostGIS / PostgreSQL geospatial database to provide geospatial routing functionality.

時系列拡張機能Time-series extensions

拡張機能Extension 説明Description
TimescaleDBTimescaleDB 高速の取り込みとクエリに対応した自動パーティション分割をサポートする時系列 SQL データベース。A time-series SQL database that supports automated partitioning for faster ingest and queries. 時間指向の分析関数、最適化を提供し、時系列ワークロードに合わせて PostgreSQL を拡大縮小します。Provides time-oriented analytical functions, optimizations, and scales PostgreSQL for time-series workloads. TimescaleDB は、Timescale, Inc. によって開発された、この会社の登録商標です。(この拡張機能に関する注意事項は下記を参照)。TimescaleDB is developed by and a registered trademark of Timescale, Inc. (See below for a note on this extension).

pg_stat_statementspg_stat_statements

SQL ステートメントの実行の統計を追跡する手段を提供するために、Pg_stat_ステートメント拡張子が、すべての Azure Database for PostgreSQL サーバーにプリロードされています。The pg_stat_statements extension is preloaded on every Azure Database for PostgreSQL server to provide you a means of tracking execution statistics of SQL statements. ステートメントをコントロールする設定pg_stat_statements.trackは、拡張機能と既定値によってtopにカウントされ、クライアントが直接発行したすべてのステートメントがすべて追跡されます。The setting pg_stat_statements.track, which controls what statements are counted by the extension, defaults to top, meaning all statements issued directly by clients are tracked. その他の 2 つの追跡レベルはnoneallです。The two other tracking levels are none and all. この設定は、Azure portalまたはAzure CLIを通じてサーバーのパラメーターとして構成可能です。This setting is configurable as a server parameter through the Azure portal or the Azure CLI.

各 SQL ステートメントをログに記録する時はPg_stat_statements が提供するクエリの実行情報とサーバーのパフォーマンスに与える影響にトレードオフがあります。There is a tradeoff between the query execution information pg_stat_statements provides and the impact on server performance as it logs each SQL statement. pg_stat_statements 拡張機能を使用していない場合、pg_stat_statements.tracknoneに設定することをお勧めします。If you are not actively using the pg_stat_statements extension, we recommend that you set pg_stat_statements.track to none. 一部のサード パーティ監視サービスがクエリ パフォーマンスの分析情報を実行するために Pg_stat_statements に依存することがありますので、そのようなケースに該当するかどうかを確認してください。Note that some third party monitoring services may rely on pg_stat_statements to deliver query performance insights, so confirm whether this is the case for you or not.

dblink および postgres_fdw を使用して、1 つの PostgreSQL サーバーから別のサーバーに、または同一サーバー内の別のデータベースに接続できます。dblink and postgres_fdw allow you to connect from one PostgreSQL server to another, or to another database in the same server. 受信側サーバーでは、ファイアウォールを経由した送信元サーバーからの接続を許可している必要があります。The receiving server needs to allow connections from the sending server through its firewall. これらの拡張機能を使用して Azure Database for PostgreSQL サーバー間を接続する場合、[Azure サービスへのアクセスを許可] を [オン] に設定することで実現できます。When using these extensions to connect between Azure Database for PostgreSQL servers, this can be done by setting "Allow access to Azure services" to ON. 拡張機能を使用して同じサーバーにループバックする場合にも、これは必要になります。This is also needed if you want to use the extensions to loop back to the same server. [Azure サービスへのアクセスを許可] 設定は、Postgres サーバー向けの Azure portal ページ内の [接続のセキュリティ ] の下にあります。The "Allow access to Azure services" setting can be found in the Azure portal page for the Postgres server, under Connection Security. [Azure サービスへのアクセスを許可] を [オン] にすると、すべての Azure IP がホワイトリストに登録されます。Turning "Allow access to Azure services" ON whitelists all Azure IPs.

現時点では、Azure Database for PostgreSQL からの送信接続は、他の Azure Database for PostgreSQL サーバーへの接続を除き、サポートされていません。Currently, outbound connections from Azure Database for PostgreSQL are not supported, except for connections to other Azure Database for PostgreSQL servers.

TimescaleDBTimescaleDB

TimescaleDB は、PostgreSQL の拡張機能としてパッケージされた時系列データベースです。TimescaleDB is a time-series database that is packaged as an extension for PostgreSQL. TimescaleDB は、時間指向の分析関数、最適化を提供し、時系列ワークロードに合わせて PostgreSQL を拡大縮小します。TimescaleDB provides time-oriented analytical functions, optimizations, and scales Postgres for time-series workloads.

TimescaleDB の詳細を参照 (Timescale, Inc. の登録商標)Learn more about TimescaleDB, a registered trademark of Timescale, Inc.

TimescaleDB をインストールするInstalling TimescaleDB

TimescaleDB をインストールするには、それをサーバーの共有プリロード ライブラリに含める必要があります。To install TimescaleDB, you need to include it in the server's shared preload libraries. Postgres の共有プリロード ライブラリへの変更を有効にするには、サーバーの再起動が必要です。A change to Postgres's shared preload libraries requires a server reboot to take effect.

注意

TimescaleDB は、Azure Database for PostgreSQL バージョン 9.6 および 10 で有効にできます。TimescaleDB can be enabled on Azure Database for PostgreSQL versions 9.6 and 10

Azure portal を使用して以下を実行します。Using the Azure portal:

  1. Azure Database for PostgreSQL サーバーを選択します。Select your Azure Database for PostgreSQL server.

  2. サイドバーから、 [サーバー パラメーター] を選択します。On the sidebar, select Server Parameters.

  3. shared_preload_libraries パラメーターを検索します。Search for the shared_preload_libraries parameter.

  4. 以下を shared_preload_libraries の値としてコピーして貼り付けます。Copy and paste the following as the value for shared_preload_libraries

    timescaledb
    
  5. [保存] を選択して変更を保存します。Select Save to preserve your changes. 変更が保存されると通知を受け取ります。You get a notification once the change is saved.

  6. 通知後、サーバーを再起動してこれらの変更を適用します。After the notification, restart the server to apply these changes. サーバーを再起動する方法については、Azure Database for PostgreSQL サーバーの再起動に関するページを参照してください。To learn how to restart a server, see Restart an Azure Database for PostgreSQL server.

次に、Postgres データベースで TimescaleDB を有効にすることができます。You can now enable TimescaleDB in your Postgres database. データベースに接続して、以下のコマンドを実行します。Connect to the database and issue the following command:

CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;

ヒント

エラーが表示される場合は、shared_preload_libraries を保存した後にサーバーを再起動したことを確認します。If you see an error, confirm that you restarted your server after saving shared_preload_libraries.

次に、一から TimescaleDB ハイパーテーブルを作成するか、PostgreSQL 内の既存の時系列データを移行することができます。You can now create a TimescaleDB hypertable from scratch or migrate existing time-series data in PostgreSQL.

次の手順Next steps

使用する拡張機能が見つからない場合は、お知らせください。If you don't see an extension that you'd like to use, let us know. 顧客フィードバック フォーラムでは既存のリクエストに投票できます。また、新しいフィードバックやリクエストを作成することも可能です。Vote for existing requests or create new feedback and requests in our Customer feedback forum.