Openflow Connector for PostgreSQL について¶
注釈
コネクタには、 コネクタ利用規約 が適用されます。
このトピックでは、 Openflow Connector for PostgreSQL の基本概念、ワークフロー、および制限事項について説明します。
Openflow Connector for PostgreSQL は、 PostgreSQL データベースインスタンスをSnowflakeに接続し、選択したテーブルのデータをほぼリアルタイムで、または指定したスケジュールで複製します。コネクタは、複製されたテーブルの現在の状態とともに利用可能なすべてのデータ変更のログも作成します。
このコネクタは、以下を実行する場合に使用します。
- 包括的で一元化されたレポート作成のため、 CDC を使って PostgreSQL データをSnowflakeで複製する 
ワークフロー¶
- データベース管理者 は、 PostgreSQL 複製設定を構成し、パブリケーションおよびコネクタの認証情報を作成します。オプションとして、 SSL 証明書を提供します。 
- Snowflakeアカウント管理者 は以下のタスクを実行します。 - コネクタのサービスユーザー、コネクタのウェアハウス、複製する宛先データベースを作成します。 
- コネクタをインストールします。 
- フローテンプレートに必要なパラメーターを指定します。 
- フローを実行します。コネクタは、Openflowの実行時に以下のタスクを実行します。 - ジャーナルテーブルのスキーマを作成します。 
- 複製用に構成されたソーステーブルと一致するスキーマと宛先テーブルを作成します。 
- テーブル複製のライフサイクルに従って複製を開始します。 
 
 
テーブル複製のライフサイクル¶
- スキーマのイントロスペクション: コネクタはソーステーブルの列、名前、タイプを検出し、Snowflakeとコネクタの制限事項に対してそれらを検証します。検証に失敗するとこのステージは失敗し、サイクルが完了します。スキーマイントロスペクションが正常に完了すると、コネクタは空の宛先テーブルを作成します。 
- スナップショットロード: コネクタは、ソーステーブルで利用可能なすべてのデータを宛先テーブルにコピーします。このステージに失敗するとサイクルは終了し、それ以上のデータは複製されません。正常に完了すると、ソーステーブルのデータセット全体が宛先テーブルで利用可能になります。 
- 増分ロード: コネクタはソーステーブルの変更の追跡と宛先テーブルへのコピーを続けます。これは、テーブルがレプリケーションから削除されるまで続きます。このステージで失敗すると、問題が解決するまでソーステーブルの複製が永久的に停止します。 
注釈
接続の問題のような一時的な失敗によってテーブルの複製が停止することはありませんが、サポートされていないデータ型マッピングのような永久的な失敗では、影響を受けたテーブルの複製が停止し、他の構成されたテーブルは変更されないままになります。影響を受けたテーブルの問題を修正したら、そのテーブルを削除し、再び複製に追加することができます。
TOASTed 値のサポート¶
コネクタは、タイプが array、bytea、json、jsonb、text、varchar、xml である列について TOAST 値 を使用したテーブルの複製をサポートします。
コネクタは、CDC ストリームで TOASTed 値に遭遇するたびに、所定の列タイプ用にフォーマットされたデフォルトのプレースホルダー __previous_value_unchanged を代用し、これをジャーナルテーブルに保存します。その後、MERGE クエリがプレースホルダーの値を考慮して、宛先テーブルが常に最後の TOASTed ではない値を含むようにします。
範囲外の値のサポート¶
コネクタは、タイプが date、timestamp、timestamptz であり範囲外の値を含む列のあるテーブルの複製をサポートします。コネクタが CDC ストリームで範囲外の値を検出した場合、列のタイプに基づいてデフォルトのプレースホルダーを代用します。
| 列タイプ | プレースホルダー値 | 
|---|---|
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
注釈
-Infinity 値と Infinity 値も、3つの型すべてのそれぞれに対応するプレースホルダーに置き換えられます。
サポートされている PostgreSQL バージョン¶
サポートされている PostgreSQL バージョンは以下のとおりです。
| 11 | 12 | 13 | 14 | 15 | 16 | 17 | |
|---|---|---|---|---|---|---|---|
| 有り | 有り | 有り | 有り | 有り | 有り | 有り | |
| 有り | 有り | 有り | 有り | 有り | 有り | 有り | |
| 有り | 有り | 有り | 有り | 有り | 有り | ||
| 有り | 有り | 有り | 有り | 有り | 有り | ||
| 有り | 有り | 有り | 有り | 有り | 有り | 
Openflow要件¶
- ランタイムのサイズはM以上である必要があります。大量のデータを複製する場合、特に行サイズが大きい場合は、より大きなランタイムを使用します。 
- コネクタは、マルチノードのOpenflowランタイムをサポートしていません。このコネクタのランタイムを、 Min nodes および Max nodes を - 1に設定して構成します。
制限事項¶
- コネクタは PostgreSQL バージョン11以降をサポートしています。 
- コネクタは、 PostgreSQL を使用したユーザー名とパスワードによる認証のみをサポートしています。 
- コネクタはパーティション化されたテーブルをサポートしていません。 
- コネクタは、Snowflakeのタイプ制限 を超えるデータが含まれるテーブルを複製しません。このルールの例外は、データのタイプが日付と時刻で範囲外の値を含む列です。詳細については、範囲外の値のサポート をご参照ください。 
- コネクタでは、複製されるすべてのテーブルに主キーが必要であり、そのテーブルの複製アイデンティティが主キーと同じである必要があります。 
- コネクタは、主キーの定義の変更、数値列の精度やスケールの変更を除いて、ソーステーブルのスキーマの変更をサポートしています。 
注釈
特定の列を複製から除外することで、特定のテーブル列に影響する制限を回避できます。