Snowflake Connector for PostgreSQL データソースの前提条件

注釈

Snowflake Connector for PostgreSQL は コネクタ規約 に従います。

Snowflake Connector for PostgreSQL をインストールする前に、次のタスクを実行して関連するデータソースを準備します。

関連データソースを構成する

Snowflakeと同期するデータが含まれている PostgreSQL のバージョン11以上のサーバーがあることを確認します。 Snowflake Connector for PostgreSQL をインストールする前に、 PostgreSQL 環境で次を実行します。

wal_levelの構成

Snowflake Connector for PostgreSQL では、 wal_levellogical に設定する必要があります

PostgreSQL サーバーがホストされている場所に応じて、さまざまな方法で実行できます

オンプレミス

スーパーユーザーまたは ALTER SYSTEM 権限を持つユーザーで、次のクエリを実行します。

ALTER SYSTEM SET wal_level = logical;
Copy

RDS

エージェントが使用するユーザには、 rds_superuser または rds_replication ロールが割り当てられている必要があります。

次も設定する必要があります。

  • rds.logical_replication 静的パラメーターを1に設定します。

  • データベースとレプリケーションの設定に応じて、 max_replication_slotsmax_connectionsmax_wal_senders パラメーターを設定します。

AWS Aurora

rds.logical_replication 情的パラメーターを1に設定します。

GCP

次のフラグを設定します。

  • cloudsql.logical_decoding=on

  • cloudsql.enable_pglogical=on

詳細については、 Google Cloudドキュメント をご参照ください。

Azure

レプリケーションサポートを Logical に設定します。詳細については、 Azureドキュメンテーション をご参照ください。

パブリケーションの構成

Snowflake Connector for PostgreSQL では、 パブリケーション を作成および設定する必要があります。

データベースに CREATE 権限を持つユーザーとしてログインし、次のクエリを実行します。

CREATE PUBLICATION <publication name>;
Copy

その後、次を使用して Snowflake Connector for PostgreSQL エージェントが参照できるテーブルを定義します。

ALTER PUBLICATION <publication name> ADD TABLE <table name>;
Copy

注意

Postgres v15以降の場合

テーブルの列のサブセットに対して作成されたパブリケーションの場合は、 ADD_TABLE_WITH_COLUMNS プロシージャを使用し、まったく同じ列のセットを指定して、レプリケーション用のテーブルを追加してください。

ADD_TABLES を使用する場合、コネクタは機能しますが、次のような明らかでない副作用が発生します。

  • 宛先データベースでは、フィルターに含まれていない列に _DELETED というサフィックスが付きます。スナップショットフェーズ中にレプリケートされたすべてのデータはそのまま残ります。

  • パブリケーションにさらに列を追加すると、テーブルは Permanently Failed 状態になり、レプリケーションの再起動が必要になります。

詳細については、 ALTER PUBLICATION ドキュメント をご参照ください。

レプリケーションスロットの作成

Snowflake Connector for PostgreSQL は、パターン sf_db_conn_rs_kbmd_<DATASOURCE NAME> を持つ名前で PostgreSQL サーバーに レプリケーションスロット を作成します。ここで、 <DATASOURCE NAME>ADD_DATA_SOURCE プロシージャで指定されたものです。

コネクタが使用されなくなった場合は、 PostgreSQL サーバーにデータが蓄積されないようにレプリケーションスロットを削除する必要があります。

select pg_drop_replication_slot(<slot_name>)
Copy

必要なユーザーを作成する

REPLICATION 属性を持つ Snowflake Connector for PostgreSQL のユーザーを作成します。レプリケーションセキュリティの詳細については、 PostgreSQL ドキュメント をご参照ください。

次のステップ

これらの手順を完了したら、 Snowsight を使用した Snowflake Connector for PostgreSQL の設定 のステップに従います。