目次
PostgreSQLは、SQLによって実行された更新結果を外部のコンシューマにストリーミングする基盤を提供しています。 この機能は、レプリケーションソリューションや監査など、さまざまな目的に使用できます。
更新結果は、ロジカルレプリケーションスロット(logical replication slots)で識別されるストリームに送出されます。
ストリームに送出される更新データのフォーマットは、使用する出力プラグインで決まります。
サンプルプラグインがPostgreSQLの配布物に含まれています。
追加のプラグインを書くことにより、PostgreSQLのコア部分のコードを一切変更することなく、利用可能なフォーマットの選択肢を増やすことができます。
すべての出力プラグインから、INSERT
によって作成された個々の新しい行と、UPDATE
によって作成された新しいバージョンの行にアクセスできます。
UPDATE
とDELETE
によって生じた古いバージョンの行へのアクセスが可能かどうかは、レプリカアイデンティティ(replica identity)の設定によって決まります(REPLICA IDENTITY
参照)。
変更データの消費は、ストリーミングレプリケーションのプロトコル(55.4と49.3を参照)を使うか、SQLを使って関数を呼び出します(49.4を参照)。 また、コア部分に手を入れなくても、レプリケーションスロットの出力を消費する別の方法を実装することもできます(49.7参照)。