このセクションには、次に関する情報が含まれています。
- Datastream が移行元 PostgreSQL データベースから pull されているデータを処理する方法の動作
- Datastream でサポートされている PostgreSQL データベースのバージョン
- データが移行先にストリーミングできるように移行元 PostgreSQL データベースを設定する方法の概要
- PostgreSQL データベースを移行元として使用する場合の既知の制限事項
動作
移行元の PostgreSQL データベースは論理デコーディング機能に依存しています。論理デコーディングでは、データベースにコミットされたすべての変更が公開され、出力プラグインを使用してこれらの変更をユーザー フレンドリーな形式で使用、処理できます。Datastream は、PostgreSQL 10 以降の標準 PostgreSQL 論理デコード プラグインである pgoutput
プラグインを使用します。
- 特定の PostgreSQL 移行元からのすべてのスキーマまたは特定のスキーマ、およびスキーマや特定のテーブルのすべてのテーブルを選択できます。
- 履歴データはすべて複製されます。
- 指定したデータベースとテーブルからの挿入、更新、削除など、すべてのデータ操作言語(DML)の変更が複製されます。
- commit された変更のみが複製されます。
- テーブルに REPLICA IDENTITY を定義すると、Datastream は指定された列を主キーとして扱います。
バージョン
Datastream は、PostgreSQL バージョン 10 以降をサポートしています。
Datastream は、次の種類の PostgreSQL データベースをサポートしています。
- セルフホストの PostgreSQL
- Cloud SQL for PostgreSQL
- AlloyDB for PostgreSQL
- AlloyDB Omni
- Amazon RDS for PostgreSQL
- Amazon Aurora PostgreSQL
既知の制限事項
PostgreSQL データベースを移行元として Datastream を使用する場合の既知の制限事項は次のとおりです。
- ストリームは 10,000 テーブルに制限されています。
- 次の条件が満たされない限り、5 億行を超えるテーブルはバックフィルできません。
- テーブルに一意の B-tree インデックスがある。
- インデックスには、
DOUBLE
、FLOAT
、MONEY
、REAL
、JSON
、JSONB
、BYTEA
、TXID
、XML
型、またはジオメトリ データ型の列は含まれません。 - インデックスのどの列も null 値を許容できません。
- インデックスのすべての列が昇順、またはインデックスのすべての列が降順になります。
- インデックスのすべての列がストリームに含まれる。
- 主キーのないテーブルには REPLICA IDENTITY が必要です。それ以外の場合、
INSERT
イベントのみが移行先に複製されます。 - PostgreSQL はリードレプリカの論理デコードをサポートしていないため、Datastream はリードレプリカ インスタンスからレプリケートできません。
- 移行元のスキーマに対するすべての変更を自動的に検出できない場合があります。その場合、データが破損する可能性があります。次のスキーマの変更により、データが破損したり、イベントのダウンストリームが処理されなかったりする可能性があります。
- 列をドロップする。
- テーブルの中央に列を追加する。
- 列のデータ型を変更する。
- 列を並べ替える。
- テーブルをドロップする(新しいデータを追加して同じテーブルを再作成する場合に関連)。
- Datastream は、
geometric
データ型の列をサポートしていません。 - Datastream は、
range
データ型の列をサポートしていません。 - Datastream は、サポートされていないデータ型の配列、ユーザー定義のデータ型(
ENUM
など)の配列、またはDATE
、TIMESTAMP
、TIMESTAMP WITH TIME ZONE
データ型の配列をサポートしていません。このような列は無視されます。 - Datastream は、テーブルのレプリカ ID の一部である列に
TOAST
値を含む行のUPDATE
イベントのレプリケーションをサポートしていません。このようなイベントは破棄されます。 - Datastream は、2,950 を超えるネストされたオブジェクトを含む
JSON
値またはJSONB
値を含む行の複製をサポートしていません。このようなJSON
値やJSONB
値を含むイベントは、移行先データベースに複製されません。 - Datastream は、
NUMERIC (precision, scale)
列にNaN
値を含む行の複製をサポートしていません。このような列の値はNULL
値に置き換えられます。 - Datastream は、hstore データ型の列の複製をサポートしていません。このような列の値は
NULL
値に置き換えられます。 - Datastream は、クライアント証明書を必要とする SSL / TLS 接続をサポートしていません。
- Datastream は、SQL_ASCII でエンコードされた移行元データベースからの非 ASCII レコードの複製をサポートしていません。このようなレコードは破棄されます。
- Datastream は、行レベルのセキュリティ(RLS)ポリシーが定義されているテーブルの複製をサポートしていません。 この制限を回避する方法については、PostgreSQL の移行元の動作と制限事項をご覧ください。
- Datastream は、生成された列に加えた変更をキャプチャしません。
次のステップ
- Datastream で使用する PostgreSQL ソースの構成方法を学習する。