Openflow Connector for PostgreSQL について¶
注釈
This connector is subject to the Snowflake Connector Terms.
このトピックでは、 Openflow Connector for PostgreSQL の基本概念、ワークフロー、および制限事項について説明します。
Openflow Connector for PostgreSQL は、 PostgreSQL データベースインスタンスをSnowflakeに接続し、選択したテーブルのデータをほぼリアルタイムで、または指定したスケジュールで複製します。コネクタは、複製されたテーブルの現在の状態とともに利用可能なすべてのデータ変更のログも作成します。
このコネクタは、以下を実行する場合に使用します。
CDC replication of PostgreSQL data with Snowflake for comprehensive, centralized reporting.
ワークフロー¶
データベース管理者 は、 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 |
18 |
|
|---|---|---|---|---|---|---|---|---|
有り |
有り |
有り |
有り |
有り |
有り |
有り |
有り |
|
有り |
有り |
有り |
有り |
有り |
有り |
有り |
有り |
|
有り |
有り |
有り |
有り |
有り |
有り |
有り |
||
有り |
有り |
有り |
有り |
有り |
有り |
有り |
||
有り |
有り |
有り |
有り |
有り |
有り |
有り |
Openflow要件¶
ランタイムのサイズはM以上である必要があります。大量のデータを複製する場合、特に行サイズが大きい場合は、より大きなランタイムを使用します。
コネクタは、マルチノードのOpenflowランタイムをサポートしていません。このコネクタのランタイムを、 Min nodes および Max nodes を
1に設定して構成します。
制限事項¶
コネクタは PostgreSQL バージョン11以降をサポートしています。
コネクタは、 PostgreSQL を使用したユーザー名とパスワードによる認証のみをサポートしています。
コネクタは、Snowflakeのタイプ制限 を超えるデータが含まれるテーブルを複製しません。このルールの例外は、データのタイプが日付と時刻で範囲外の値を含む列です。詳細については、範囲外の値のサポート をご参照ください。
コネクタでは、複製されるすべてのテーブルに主キーが必要であり、そのテーブルの複製アイデンティティが主キーと同じである必要があります。
コネクタは、主キーの定義の変更、数値列の精度やスケールの変更を除いて、ソーステーブルのスキーマの変更をサポートしています。
コネクタは、ドロップされた列の再追加をサポートしていません。
注釈
特定の列を複製から除外することで、特定のテーブル列に影響する制限を回避できます。