Openflow Connector for PostgreSQL について

注釈

このコネクタは、 Snowflakeコネクタ規約 に従うものとします。

このトピックでは、 Openflow Connector for PostgreSQL の基本概念、ワークフロー、および制限事項について説明します。

Openflow Connector for PostgreSQL は、 PostgreSQL データベースインスタンスをSnowflakeに接続し、選択したテーブルのデータをほぼリアルタイムで、または指定したスケジュールで複製します。コネクタは、複製されたテーブルの現在の状態とともに利用可能なすべてのデータ変更のログも作成します。

このコネクタは、以下を実行する場合に使用します。

  • CDC replication of PostgreSQL data with Snowflake for comprehensive, centralized reporting.

ワークフロー

  1. データベース管理者 は、 PostgreSQL 複製設定を構成し、パブリケーションおよびコネクタの認証情報を作成します。オプションとして、 SSL 証明書を提供します。

  2. Snowflakeアカウント管理者 は以下のタスクを実行します。

    1. コネクタのサービスユーザー、コネクタのウェアハウス、複製する宛先データベースを作成します。

    2. コネクタをインストールします。

    3. フローテンプレートに必要なパラメーターを指定します。

    4. フローを実行します。コネクタは、Openflowの実行時に以下のタスクを実行します。

      1. ジャーナルテーブルのスキーマを作成します。

      2. 複製用に構成されたソーステーブルと一致するスキーマと宛先テーブルを作成します。

      3. テーブル複製のライフサイクルに従って複製を開始します。

テーブル複製のライフサイクル

  1. スキーマのイントロスペクション: コネクタはソーステーブルの列、名前、タイプを検出し、Snowflakeとコネクタの制限事項に対してそれらを検証します。検証に失敗するとこのステージは失敗し、サイクルが完了します。スキーマイントロスペクションが正常に完了すると、コネクタは空の宛先テーブルを作成します。

  2. スナップショットロード: コネクタは、ソーステーブルで利用可能なすべてのデータを宛先テーブルにコピーします。このステージに失敗するとサイクルは終了し、それ以上のデータは複製されません。正常に完了すると、ソーステーブルのデータセット全体が宛先テーブルで利用可能になります。

  3. 増分ロード: コネクタはソーステーブルの変更の追跡と宛先テーブルへのコピーを続けます。これは、テーブルがレプリケーションから削除されるまで続きます。このステージで失敗すると、問題が解決するまでソーステーブルの複製が永久的に停止します。

    注釈

    This connector can be configured to immediately start replicating incremental changes for newly added tables, bypassing the snapshot load phase. This option is often useful when reinstalling the connector in an account where previously replicated data exists and you want to continue replication without having to re-snapshot tables.

    For details on the bypassing snapshot load and using the incremental load process, see Incremental replication.

重要

Interim failures, such as connection errors, do not prevent tables from being replicated. Permanent failures, such as unsupported data types, do prevent tables from being replicated. If a permanent failure prevents a table from being replicated, remove the table from the list of replicated tables. After you address the problem that caused the failure, you can add the table back to the list of replicated tables.

TOASTed 値のサポート

コネクタは、タイプが arraybyteajsonjsonbtextvarcharxml である列について TOAST 値 を使用したテーブルの複製をサポートします。

コネクタは、CDC ストリームで TOASTed 値に遭遇するたびに、所定の列タイプ用にフォーマットされたデフォルトのプレースホルダー __previous_value_unchanged を代用し、これをジャーナルテーブルに保存します。その後、MERGE クエリがプレースホルダーの値を考慮して、宛先テーブルが常に最後の TOASTed ではない値を含むようにします。

範囲外の値のサポート

コネクタは、タイプが datetimestamptimestamptz であり範囲外の値を含む列のあるテーブルの複製をサポートします。コネクタが CDC ストリームで範囲外の値を検出した場合、列のタイプに基づいてデフォルトのプレースホルダーを代用します。

範囲外の値のプレースホルダー値

列タイプ

プレースホルダー値

date

-9999-01-01 から 9999-12-31

timestamp

0001-01-01 00:00:00 から 9999-12-31 23:59:59.999999999

timestamptz

0001-01-01 00:00:00+00 から 9999-12-31 23:59:59.999999999+00

注釈

-Infinity 値と Infinity 値も、3つの型すべてのそれぞれに対応するプレースホルダーに置き換えられます。

サポートされている PostgreSQL バージョン

サポートされている PostgreSQL バージョンは以下のとおりです。

サポートされている PostgreSQL バージョン

11

12

13

14

15

16

17

18

標準

有り

有り

有り

有り

有り

有り

有り

有り

AWS RDS

有り

有り

有り

有り

有り

有り

有り

有り

Amazon Aurora

有り

有り

有り

有り

有り

有り

有り

GCP Cloud SQL

有り

有り

有り

有り

有り

有り

有り

Azure Database

有り

有り

有り

有り

有り

有り

有り

Openflow要件

  • ランタイムのサイズはM以上である必要があります。大量のデータを複製する場合、特に行サイズが大きい場合は、より大きなランタイムを使用します。

  • コネクタは、マルチノードのOpenflowランタイムをサポートしていません。このコネクタのランタイムを、 Min nodes および Max nodes1 に設定して構成します。

制限事項

  • コネクタは PostgreSQL バージョン11以降をサポートしています。

  • コネクタは、 PostgreSQL を使用したユーザー名とパスワードによる認証のみをサポートしています。

  • コネクタは、Snowflakeのタイプ制限 を超えるデータが含まれるテーブルを複製しません。このルールの例外は、データのタイプが日付と時刻で範囲外の値を含む列です。詳細については、範囲外の値のサポート をご参照ください。

  • コネクタでは、複製されるすべてのテーブルに主キーが必要であり、そのテーブルの複製アイデンティティが主キーと同じである必要があります。

  • コネクタは、主キーの定義の変更、数値列の精度やスケールの変更を除いて、ソーステーブルのスキーマの変更をサポートしています。

注釈

特定の列を複製から除外することで、特定のテーブル列に影響する制限を回避できます。

次のステップ

の設定 Openflow Connector for PostgreSQL