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