借助 Datastream 中的自动数据流设置流程,您可以直接从实例概览页面将数据从 Cloud SQL 实例复制到 BigQuery。此流程支持 Cloud SQL for PostgreSQL、Cloud SQL for MySQL 和 Cloud SQL for SQL Server 数据源。Datastream 会自动配置虚拟私有云 (VPC) 连接、源数据库设置和数据流资源。
如需使用自动化流程,您的源 Cloud SQL 实例必须启用专用服务访问通道并使用 Private Service Connect 接口。如需详细了解来源要求,请参阅准备工作。
准备工作
- 启用 Datastream、Network Connectivity 和 Compute Engine API。
- 确保您拥有创建和管理 Datastream 资源所需的 Identity and Access Management (IAM) 权限。如需了解详情,请参阅下文。
- 创建并配置源 Cloud SQL 数据库以进行复制。如需了解详情,请参阅配置来源。
- 确保您的源数据库已配置为使用专用服务访问通道。
对于 Cloud SQL for PostgreSQL 实例:我们建议您在创建数据流之前为实例启用逻辑复制。如果您未启用逻辑复制,Datastream 会为您启用,这会重启源实例。
对于 Cloud SQL for MySQL 实例:为 Cloud SQL for MySQL 实例启用时间点恢复,并确保数据库版本为 8.0.14 或更高版本。使用自动数据流设置时,Datastream 仅支持在标准备份层级中启用时间点恢复。
对于 Cloud SQL for SQL Server 实例:确保 Datastream 支持实例使用的 SQL Server 版本。
所需权限
如需使用自动数据流创建流程,您需要以下 Identity and Access Management (IAM) 角色或权限:
serviceusage.services.enable、compute.networkAdmin,用于启用所需的 API 并执行网络配置任务。cloudsql.admin,用于实例配置任务。datastream.admin,用于 Datastream 代表您执行的管理任务。
Cloud SQL for PostgreSQL 所需的其他权限
- 确保您已向
postgres或cloudsqlsuperuser角色授予对所选数据库中所有架构和表的访问权限。由于自动化流程默认包含数据库中的所有架构和表,因此如果自动创建的数据库用户缺少对任何架构或表的权限,数据流创建操作就会失败。 如果您选择自定义数据流设置,则数据库管理员用户还需要对要复制的架构拥有
GRANT权限,以及对源数据库中的管理和结构任务拥有一些额外权限。连接到源数据库并运行以下命令:GRANT cloudsqlsuperuser TO "USER_NAME"; ALTER ROLE "USER_NAME" CREATEROLE; GRANT SELECT on ALL TABLES IN SCHEMA "SCHEMA_NAME" to
"USER_NAME" WITH GRANT OPTION; ALTER DEFAULT PRIVILEGES IN SCHEMA "SCHEMA_NAME" GRANT SELECT ON TABLES TO "USER_NAME" WITH GRANT OPTION; GRANT CREATE ON DATABASE "DATABASE_NAME" TO "USER_NAME"; 只有当未来的表是由您在自动化流程中提供其账号详细信息以进行身份验证的用户创建时,这些表才会自动添加到数据流中。如果未来的表是由其他用户创建的,则该用户必须明确向 Datastream 读取者用户授予对该表的
SELECT权限。
创建并启动数据流
如需创建并启动数据流,请执行以下步骤:
控制台
前往源 Cloud SQL 数据库实例概览页面。
选择要从中流式传输数据的实例。
在将数据复制到 BigQuery 部分中,点击启动流。
开始流式复制数据窗格即会打开。
对于 Cloud SQL for PostgreSQL 和 Cloud SQL for MySQL 来源,请在数据流设置下查看您创建的数据流的默认设置。对于 Cloud SQL for SQL Server 来源,请继续执行自定义数据流设置部分。
如果您已准备好创建并开始直播,请点击开始直播。
如果您需要更改直播设置,请点击自定义。
自定义数据流设置
点击自定义后,系统会显示自定义数据流设置页面。确保您拥有自定义数据流设置所需的权限。
开始使用
- 在开始使用页面上,在数据流名称字段中提供数据流的名称。系统会自动填充唯一标识符。
在提供实例用户账号详情部分中,选择身份验证方法:
IAM 数据库身份验证:如果您的用户已分配 Identity and Access Management (IAM) 主账号身份,则此选项可用。如需了解详情,请参阅 IAM 主账号。如果您选择此选项,则必须手动向用户授予
cloudsqlsuperuser角色和CREATEROLE权限:- 在 Google Cloud 控制台中,前往 Cloud SQL 实例页面。
- 选择您的 Cloud SQL 实例。
- 在导航菜单中,点击 Cloud SQL Studio 并登录。
- 在探索器窗格中,为您的用户运行以下查询:
GRANT cloudsqlsuperuser TO "USER_NAME"; ALTER ROLE "USER_NAME" CREATEROLE;
- 内置数据库身份验证:提供具有
cloudsqlsuperuser角色的用户的用户名和密码。如果您选择此选项,请确保用户对要复制的表具有GRANT权限。
查看其他流详细信息,例如区域、加密和标签。展开其他数据流详细信息部分,以应用更改(如果需要)。
点击继续。
配置来源
在配置流来源页面上,选择要从中复制数据的数据库。
默认情况下,要包含的对象列表会选择所有可用对象。列表中的对象是您拥有流式传输所需权限的对象。如需更改所选对象,请修改列表中的选择。
查看高级数据流配置,例如回填模式和并发回填连接数上限。展开高级数据流配置部分,以应用更改(如果需要)。
点击继续。
配置目标位置
- 在配置目标页面上,根据需要调整 BigQuery 目标设置。如需了解详情,请参阅配置有关数据流的目标位置的信息。
创建并启动数据流
点击创建并稍后启动,以创建数据流并稍后在 Datastream 中启动,或点击启动,以立即创建并启动数据流。
系统会自动执行以下任务,并向您发送通知:
- Datastream 会创建所需的虚拟私有云资源,例如内部 IP 地址范围、子网和网络连接。
- Datastream 会为 CDC 配置表、设置复制槽、为数据库中的所有表设置发布内容,并创建专用 Datastream 用户。
- Datastream 会创建专用连接配置以及来源和目标连接配置文件。
确认您要创建或创建并启动数据流。
监控直播
您可以在 Google Cloud 控制台中的源实例概览页面上监控基本数据流详细信息。该页面会显示数据流状态、数据流名称、目标 BigQuery 数据集和目标项目标识符等信息。
在概览页面中,您还可以执行启动或暂停数据流等操作。如需更精细的监控信息,请点击数据流名称以进入 Datastream。
删除数据流
删除使用自动化流程创建的数据流时,某些资源(例如 PostgreSQL 复制槽)会自动删除。不过,有些资源需要您手动删除:
- 发布内容。发布是使用数据库管理员用户创建的,只能由其所有者(默认情况下为创建它的用户)删除。
- Datastream 读取者用户。
- Datastream 来源和目标连接配置文件
- 专用连接资源。
- 在自动化流程中创建的所有网络资源,例如子网和网络连接。