Openflow Connector for PostgreSQL について

注釈

コネクタには、 コネクタ利用規約 が適用されます。

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

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

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

  • 包括的で一元化されたレポート作成のため、 CDC を使って PostgreSQL データをSnowflakeで複製する

ワークフロー

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

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

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

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

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

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

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

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

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

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

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

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

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

注釈

接続の問題のような一時的な失敗によってテーブルの複製が停止することはありませんが、サポートされていないデータ型マッピングのような永久的な失敗では、影響を受けたテーブルの複製が停止し、他の構成されたテーブルは変更されないままになります。影響を受けたテーブルの問題を修正したら、そのテーブルを削除し、再び複製に追加することができます。

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

標準

有り

有り

有り

有り

有り

有り

有り

AWS RDS

有り

有り

有り

有り

有り

有り

有り

Amazon Aurora

有り

有り

有り

有り

有り

有り

GCP Cloud SQL

有り

有り

有り

有り

有り

有り

Azure Database

有り

有り

有り

有り

有り

有り

Openflow要件

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

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

制限事項

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

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

  • コネクタはパーティション化されたテーブルをサポートしていません。

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

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

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

注釈

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

次のステップ

の設定 Openflow Connector for PostgreSQL