Snowflake Connector for PostgreSQL 数据源的先决条件¶
备注
使用 Snowflake Connector for PostgreSQL 需遵守 Connector 条款。
在安装 Snowflake Connector for PostgreSQL 之前,请通过执行以下任务来准备关联的数据源:
配置关联的数据源¶
确保您有一台 PostgreSQL 版本 11 或更高版本的服务器,其中包含您要与 Snowflake 同步的数据。安装 Snowflake Connector for PostgreSQL 之前,请在 PostgreSQL 环境中执行以下操作:
配置 wal_level¶
Snowflake Connector for PostgreSQL 需要将 wal_level (https://www.postgresql.org/docs/current/runtime-config-wal.html#GUC-WAL-LEVEL) 设置为 logical
。
根据 PostgreSQL 服务器的托管位置,可以通过不同的方式执行此操作
本地 |
以超级用户或具有
|
RDS |
代理使用的用户需要已分配 您还需要执行以下操作:
|
AWS Aurora |
将 |
GCP |
设置以下标记:
|
Azure |
将复制支持设置为 |
配置发布¶
Snowflake Connector for PostgreSQL 需要创建和配置 发布 (https://www.postgresql.org/docs/current/logical-replication-publication.html#LOGICAL-REPLICATION-PUBLICATION)。
以具有 CREATE
权限的用户身份登录数据库并执行以下查询:
CREATE PUBLICATION <publication name>;
然后定义 Snowflake Connector for PostgreSQL 代理使用以下信息将能够看到的表:
ALTER PUBLICATION <publication name> ADD TABLE <table name>;
注意
对于 Postgres v15 及更高版本
如果为表列的子集创建了发布,请使用 ADD_TABLE_WITH_COLUMNS 过程添加用于复制的表,并准确指定相同的列集。
如果将使用 ADD_TABLES
,连接器将运行,但将会出现以下不明显的副作用:
在目标数据库中,未包含在筛选器中的列将以
_DELETED
作为后缀。在快照阶段复制的所有数据仍将存在。如果向发布添加更多列,表将导致
Permanently Failed
状态,需要重新启动复制。
有关更多信息,请参阅 ALTER PUBLICATION 文档 (https://www.postgresql.org/docs/current/sql-alterpublication.html)。
创建复制槽¶
Snowflake Connector for PostgreSQL 将在 PostgreSQL 服务器中创建 复制槽 (https://www.postgresql.org/docs/current/logicaldecoding-explanation.html#LOGICALDECODING-REPLICATION-SLOTS),其名称具有模式 sf_db_conn_rs_kbmd_<DATASOURCE NAME>
,其中 <DATASOURCE NAME>
是在 ADD_DATA_SOURCE 过程中指定的名称。
如果不再使用连接器,则必须移除复制槽,以免在 PostgreSQL 服务器中累积数据。
select pg_drop_replication_slot(<slot_name>)
创建所需的用户¶
使用 REPLICATION
属性为 Snowflake Connector for PostgreSQL 创建用户。有关复制安全性的更多信息,请参阅 PostgreSQL 文档 (https://www.postgresql.org/docs/current/logical-replication-security.html)。
后续步骤¶
完成以上过程后,请按照 使用 Snowsight 设置 Snowflake Connector for PostgreSQL 中的步骤操作。