配置源 Spanner 数据库

本页面介绍如何配置变更数据捕获 (CDC),以将数据从 Spanner 数据库流式传输到受支持的目标位置(例如 BigQuery 或 Cloud Storage)。

准备工作

如果您的 Spanner 实例位于不同于 Datastream 运行所在项目的 Google Cloud 项目中,您需要为 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 时使用的精细访问权限控制数据库角色。数据库角色至少需要具有以下权限:

    • spanner.sessions.create
    • spanner.sessions.delete
    • spanner.sessions.get
    • spanner.databases.read
    • spanner.databases.select
    • spanner.databases.partitionQuery
    • spanner.databases.partitionRead
    • spanner.databases.beginReadOnlyTransaction
    • spanner.databases.getDdl
    • spanner.databases.useDataBoost(如果您选择使用 Spanner Data Boost)
    • spanner.databases.useRoleBasedAccess
  • 供 Datastream 使用的 Spanner 远程过程调用 (RPC) 优先级。

后续步骤