移行元 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 ツリー インデックスがあります。
    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 は、生成された列に加えられた変更をキャプチャしません。