如需将变更数据捕获 (CDC) 更新流式传输到
受支持的目标(例如
BigQuery 或 Cloud Storage),您可以将 Amazon RDS for
PostgreSQL 数据库连接到 Datastream。如需准备源实例,您可以启用 rds.logical_replication
参数,创建发布内容和复制槽,并配置 Datastream 用户。
创建参数组
启动 Amazon RDS 信息中心。
在抽屉式导航栏中,点击参数组,然后点击创建参数组。此时会显示创建参数组页面。
选择与您的数据库匹配的数据库系列,为参数组提供名称和说明,然后点击创建 。
选中新建参数组左侧的复选框,然后在参数组操作下点击修改。
为您的组设置以下参数。
参数 值 rds.logical_replication 1点击保存更改 。
配置来源数据库
启动 Amazon RDS 信息中心。
在抽屉式导航栏 中,点击数据库 。
选择您的来源,然后点击修改 。
前往其他配置 部分。
选择您创建的参数组。
点击继续 。
在安排修改时间 下,选择立即应用 。
验证已将参数组分配给数据库实例
启动 Amazon RDS 信息中心。
在抽屉式导航栏中,点击数据库,然后选择您的数据库实例。
点击配置标签页。
验证您能看到自己创建的参数组,并且其状态为 pending-reboot。
重新启动数据库实例以完成配置。如需重新启动实例,请执行以下步骤:
- 在抽屉式导航栏中,点击实例。
- 选择您的数据库实例。
- 从实例操作 菜单中选择重新启动 。
创建发布内容和复制槽
创建发布内容。建议您仅为要复制的表创建发布内容。这样,Datastream 就可以只读取相关数据,并降低数据库和 Datastream 的负载:
CREATE PUBLICATION PUBLICATION_NAME FOR TABLE SCHEMA1.TABLE1, SCHEMA2.TABLE2;
替换以下内容:
- PUBLICATION_NAME:发布内容的名称。您需要在 Datastream 数据流创建向导中创建数据流时提供此名称。
- SCHEMA:包含表的架构的名称。
- TABLE:要复制的表的名称。
您还可以为数据库中的所有表创建发布内容。请注意,这种方法会增加源数据库和 Datastream 的负载:
CREATE PUBLICATION PUBLICATION_NAME FOR ALL TABLES;
输入以下 PostgreSQL 命令,创建复制槽:
SELECT PG_CREATE_LOGICAL_REPLICATION_SLOT('REPLICATION_SLOT_NAME', 'pgoutput');替换以下内容:
- REPLICATION_SLOT_NAME:复制槽的名称。您需要在 Datastream 数据流创建向导中创建数据流时提供此名称。
创建 Datastream 用户
如需创建 Datastream 用户,请输入以下 PostgreSQL 命令:
CREATE USER USER_NAME WITH ENCRYPTED PASSWORD 'USER_PASSWORD';
替换以下内容:
- USER_NAME:您要创建的 Datastream 用户的名称。
- USER_PASSWORD:您要创建的 Datastream 用户的登录密码。
向您创建的用户授予以下特权:
GRANT RDS_REPLICATION TO USER_NAME; GRANT SELECT ON ALL TABLES IN SCHEMA SCHEMA_NAME TO USER_NAME; GRANT USAGE ON SCHEMA SCHEMA_NAME TO USER_NAME; ALTER DEFAULT PRIVILEGES IN SCHEMA SCHEMA_NAME GRANT SELECT ON TABLES TO USER_NAME;
替换以下内容:
- USER_NAME:您要向其授予特权的用户。
- SCHEMA_NAME:您要向其授予 特权的架构的名称。
后续步骤
- 详细了解 Datastream 如何与 PostgreSQL 来源 搭配使用。