ソース PostgreSQL データベース

このセクションには、次に関する情報が含まれています。

  • 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 億行を超えるテーブルはバックフィルできません。
    1. テーブルに一意の B-tree インデックスがある。
    2. インデックスには、DOUBLEFLOATMONEYREALJSONJSONBBYTEATXIDXML 型、またはジオメトリ データ型の列は含まれません。
    3. インデックスのどの列も null 値を許容できません。
    4. インデックスのすべての列が昇順、またはインデックスのすべての列が降順になります。
    5. インデックスのすべての列がストリームに含まれる。
  • 主キーのないテーブルには REPLICA IDENTITY が必要です。それ以外の場合、INSERT イベントのみが移行先に複製されます。
  • PostgreSQL はリードレプリカの論理デコードをサポートしていないため、Datastream はリードレプリカ インスタンスからレプリケートできません。
  • 移行元のスキーマに対するすべての変更を自動的に検出できない場合があります。その場合、データが破損する可能性があります。次のスキーマの変更により、データが破損したり、イベントのダウンストリームが処理されなかったりする可能性があります。
    • 列をドロップする。
    • テーブルの中央に列を追加する。
    • 列のデータ型を変更する。
    • 列を並べ替える。
    • テーブルをドロップする(新しいデータを追加して同じテーブルを再作成する場合に関連)。
  • Datastream は、geometric データ型の列をサポートしていません。
  • Datastream は、range データ型の列をサポートしていません。
  • Datastream は、サポートされていないデータ型の配列、ユーザー定義のデータ型(ENUM など)の配列、または DATETIMESTAMPTIMESTAMP 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 は、生成された列に加えた変更をキャプチャしません。

次のステップ