您可以使用 Datastream 将变更数据捕获 (CDC) 更新从 Spanner 数据库流式传输到支持的目标位置(例如 BigQuery 或 Cloud Storage)。设置来源需要创建 Spanner 变更数据流,并授予 Identity and Access Management (IAM) 角色或精细访问权限控制权限。
准备工作
如果您的 Spanner 实例存在于 Google Cloud 运行 Datastream 的项目以外的项目中,则您需要为 Datastream 服务代理提供 spanner.databaseReader IAM 角色;如果您计划使用 Data Boost,则需要提供 spanner.databaseReaderWithDataBoost 角色。
如果您更愿意使用精细访问权限控制数据库角色,请参阅创建 Spanner 连接配置文件和数据流,了解所需的具体权限。
创建 Spanner 数据库
如需开始从 Spanner 复制变更数据,您首先需要创建 Spanner 实例和 Spanner 数据库。
创建变更数据流
Spanner 使用变更数据流来跟踪和流式传输数据更改,例如插入、更新和删除。如需在 Datastream 中配置 Spanner 来源以进行复制,您需要创建并配置 Spanner 变更数据流。您需要为变更数据流指定 NEW_ROW 值捕获类型。
如需了解详情,请参阅变更数据流概览。
创建 Spanner 连接配置文件和数据流
创建新的 Spanner 连接配置文件时,您需要指定创建的 Spanner 数据库。数据库名称需要采用以下格式:
projects/PROJECT_ID/instances/INSTANCE/databases/DATABASE_ID
创建流时,您可以选择提供:
- 要包含和排除的对象。
回填或变更数据流查询的并发读取次数上限。
查询 Spanner 时是否让 Datastream 使用 Data Boost。
Datastream 在查询 Spanner 时使用的精细访问权限控制数据库角色。如需使用此角色,Datastream 至少需要以下 IAM 权限:
spanner.databases.useRoleBasedAccessspanner.databaseRoles.listspanner.databases.useDataBoost(如果您选择使用 Spanner Data Boost)
此外,Spanner 数据库角色必须具有以下权限:
- 对要流式传输的表的
SELECT权限。 - 变更数据流的精细权限。如需了解详情,请参阅变更数据流的精细访问权限控制。
Datastream 使用的 Spanner 远程过程调用 (RPC) 优先级。
后续步骤
- 详细了解如何将 Spanner 用作来源。