GSP1052

概览
在当今竞争激烈的环境中,组织需要能够基于实时数据快速轻松地做出决策。利用 Datastream for BigQuery,您可以直接从 AlloyDB、MySQL、PostgreSQL 和 Oracle 等运营数据库源,将数据无缝复制到 Google Cloud 无服务器数据仓库 BigQuery。通过无服务器、自动扩缩的架构,Datastream 可以让您轻松设置可实现低延迟数据复制的 ELT(提取、加载和转换)流水线,从而获得实时的数据洞见。
在本实操实验中,您将使用 gcloud
命令行来部署 Cloud SQL for PostgreSQL 数据库,并导入示例数据集。在界面中,您将创建和启动 Datastream 数据流,并将数据复制到 BigQuery。
在实验过程中,学员可以轻松地将命令复制并粘贴到相应位置,但我们建议学员还是自己手动输入命令,这样可以强化对核心概念的理解。
您将执行的操作
- 使用 Google Cloud 控制台准备 Cloud SQL for PostgreSQL 实例
- 将数据导入 Cloud SQL 实例
- 为 PostgreSQL 数据库创建 Datastream 连接配置文件
- 为 BigQuery 目标位置创建 Datastream 连接配置文件
- 创建 Datastream 数据流并启动复制
- 验证现有数据及更改是否已正确复制到 BigQuery
前提条件
- 熟悉标准 Linux 环境
- 熟悉变更数据捕获 (CDC) 概念
设置和要求
点击“开始实验”按钮前的注意事项
请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。
此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud。
为完成此实验,您需要:
- 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
注意:请使用无痕模式(推荐)或无痕浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
注意:请仅使用学生账号完成本实验。如果您使用其他 Google Cloud 账号,则可能会向该账号收取费用。
如何开始实验并登录 Google Cloud 控制台
-
点击开始实验按钮。如果该实验需要付费,系统会打开一个对话框供您选择支付方式。左侧是“实验详细信息”窗格,其中包含以下各项:
- “打开 Google Cloud 控制台”按钮
- 剩余时间
- 进行该实验时必须使用的临时凭据
- 帮助您逐步完成本实验所需的其他信息(如果需要)
-
点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。
该实验会启动资源并打开另一个标签页,显示“登录”页面。
提示:将这些标签页安排在不同的窗口中,并排显示。
注意:如果您看见选择账号对话框,请点击使用其他账号。
-
如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。
{{{user_0.username | "<用户名>"}}}
您也可以在“实验详细信息”窗格中找到“用户名”。
-
点击下一步。
-
复制下面的密码,然后将其粘贴到欢迎对话框中。
{{{user_0.password | "<密码>"}}}
您也可以在“实验详细信息”窗格中找到“密码”。
-
点击下一步。
重要提示:您必须使用实验提供的凭据。请勿使用您的 Google Cloud 账号凭据。
注意:在本实验中使用您自己的 Google Cloud 账号可能会产生额外费用。
-
继续在后续页面中点击以完成相应操作:
- 接受条款及条件。
- 由于这是临时账号,请勿添加账号恢复选项或双重验证。
- 请勿注册免费试用。
片刻之后,系统会在此标签页中打开 Google Cloud 控制台。
注意:如需访问 Google Cloud 产品和服务,请点击导航菜单,或在搜索字段中输入服务或产品的名称。
激活 Cloud Shell
Cloud Shell 是一种装有开发者工具的虚拟机。它提供了一个永久性的 5GB 主目录,并且在 Google Cloud 上运行。Cloud Shell 提供可用于访问您的 Google Cloud 资源的命令行工具。
-
点击 Google Cloud 控制台顶部的激活 Cloud Shell
。
-
在弹出的窗口中执行以下操作:
- 继续完成 Cloud Shell 信息窗口中的设置。
- 授权 Cloud Shell 使用您的凭据进行 Google Cloud API 调用。
如果您连接成功,即表示您已通过身份验证,且项目 ID 会被设为您的 Project_ID 。输出内容中有一行说明了此会话的 Project_ID:
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
gcloud
是 Google Cloud 的命令行工具。它已预先安装在 Cloud Shell 上,且支持 Tab 自动补全功能。
- (可选)您可以通过此命令列出活跃账号名称:
gcloud auth list
- 点击授权。
输出:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (可选)您可以通过此命令列出项目 ID:
gcloud config list project
输出:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
注意:如需查看在 Google Cloud 中使用 gcloud
的完整文档,请参阅 gcloud CLI 概览指南。
任务 1. 创建用于复制的数据库
在此部分,您将准备用于 Datastream 复制的 Cloud SQL for PostgreSQL 数据库。
创建 Cloud SQL 数据库
- 运行以下命令以启用 Cloud SQL API:
gcloud services enable sqladmin.googleapis.com
- 运行以下命令,以创建 Cloud SQL for PostgreSQL 数据库实例:
POSTGRES_INSTANCE=postgres-db
DATASTREAM_IPS={{{project_0.startup_script.ip_Address | IP_ADDRESS}}}
gcloud sql instances create ${POSTGRES_INSTANCE} \
--database-version=POSTGRES_14 \
--cpu=2 --memory=10GB \
--authorized-networks=${DATASTREAM_IPS} \
--region={{{project_0.default_region|REGION}}} \
--root-password pwd \
--database-flags=cloudsql.logical_decoding=on
注意:此命令将在 中创建数据库。对于其他区域,请务必将 DATASTREAM_IPS
替换为您所在区域的正确 Datastream 公共 IP。
注意:数据库实例创建完成后,请记录实例的公共 IP,稍后在创建 Datastream 连接配置文件时需用到此信息。
点击检查我的进度以验证是否完成了以下目标:
创建用于复制的数据库
使用示例数据填充数据库
在 Cloud Shell 中运行以下命令来连接到 PostgreSQL 数据库。
gcloud sql connect postgres-db --user=postgres
系统提示输入密码时,输入 pwd
。
连接到数据库后,运行以下 SQL 命令来创建示例架构和表:
CREATE SCHEMA IF NOT EXISTS test;
CREATE TABLE IF NOT EXISTS test.example_table (
id SERIAL PRIMARY KEY,
text_col VARCHAR(50),
int_col INT,
date_col TIMESTAMP
);
ALTER TABLE test.example_table REPLICA IDENTITY DEFAULT;
INSERT INTO test.example_table (text_col, int_col, date_col) VALUES
('hello', 0, '2020-01-01 00:00:00'),
('goodbye', 1, NULL),
('name', -987, NOW()),
('other', 2786, '2021-01-01 00:00:00');
配置数据库以用于复制
CREATE PUBLICATION test_publication FOR ALL TABLES;
ALTER USER POSTGRES WITH REPLICATION;
SELECT PG_CREATE_LOGICAL_REPLICATION_SLOT('test_replication', 'pgoutput');
任务 2. 创建 Datastream 资源并开始复制
数据库现已准备就绪,接下来创建 Datastream 连接配置文件和数据流以开始复制。
-
在导航菜单中,点击查看所有产品,然后在 Analytics 下选择 Datastream
-
点击启用,以启用 Datastream API。
创建连接配置文件
创建两个连接配置文件,一个用于 PostgreSQL 源,另一个用于 BigQuery 目标位置。
PostgreSQL 连接配置文件
- 在 Cloud 控制台中,前往连接配置文件标签页,然后点击创建配置文件。
- 选择 PostgreSQL 连接配置文件类型。
-
使用 postgres-cp
作为连接配置文件的名称和 ID。
-
输入数据库连接详细信息:
- 区域:
- 之前(任务 1)创建的 Cloud SQL 实例的 IP 和端口
- 如需查找 Cloud SQL 实例的 IP 地址,请执行以下操作:
- 在导航菜单中,点击“SQL”。
- 在“SQL”页面上,找到您的 PostgreSQL 实例(通常名为 postgres-db)。
- 复制实例的公共 IP 地址。
- 用户名:
postgres
- 密码:
pwd
- 数据库:
postgres
-
点击继续。
-
选择 IP 许可清单连接方法,然后点击继续。
-
点击运行测试,确保 Datastream 能够访问数据库。
-
点击创建。
BigQuery 连接配置文件
- 在 Cloud 控制台中,前往连接配置文件标签页,然后点击创建配置文件。
- 选择 BigQuery 连接配置文件类型。
-
使用 bigquery-cp
作为连接配置文件的名称和 ID。
-
区域
-
点击创建。
创建数据流
创建数据流,该数据流将连接之前创建的连接配置文件,并定义将数据从源传输到目标位置的配置。
- 在 Cloud 控制台中,前往数据流标签页,然后点击创建数据流。
定义数据流详细信息
- 使用
test-stream
作为数据流的名称和 ID。
- 区域
- 选择 PostgreSQL 作为数据源类型
- 选择 BigQuery 作为目标类型
- 点击继续。
定义数据源
- 选择在上一步中创建的 postgres-cp 连接配置文件。
- (可选)点击运行测试来测试连接
- 点击继续。
配置数据源
- 指定
test_replication
作为复制槽名称。
- 指定
test_publication
作为发布内容名称。
- 选择将 test 架构用于复制。
- 点击继续。
定义目标位置
- 选择在上一步中创建的 bigquery-cp 连接配置文件,然后点击继续。
配置目标位置
- 选择区域并选择 作为 BigQuery 数据集位置。
- 将过时限制设置为 0 秒。
- 点击继续。
检查并创建数据流
- 最后,点击运行验证来验证数据流详细信息。成功完成验证后,点击创建并启动,然后确认创建并启动。
等待约 1-2 分钟的时间,直到数据流状态显示为正在运行。
点击检查我的进度以验证是否完成了以下目标:
创建 Datastream 资源
任务 3. 在 BigQuery 中查看数据
数据流现已运行,接下来查看复制到 BigQuery 数据集的数据。
- 在 Google Cloud 控制台中,点击导航菜单中的 BigQuery。
在弹出式窗口中,点击完成。
- 在 BigQuery Studio 探索器中,展开项目节点以查看数据集列表。
- 展开 test 数据集节点。
- 点击 example_table 表。
- 点击预览标签页,查看 BigQuery 中的数据。
注意:数据可能需要几分钟的时间才能在预览部分显示。
- 如果您在预览标签页上看到“没有可显示的数据”消息,可以使用以下命令验证数据。
SELECT * FROM test.example_table ORDER BY id;
任务 4. 检查数据源中的更改是否已复制到 BigQuery
- 在 Cloud Shell 中运行以下命令来连接到 Cloud SQL 数据库(密码为
pwd
):
gcloud sql connect postgres-db --user=postgres
- 运行以下 SQL 命令来对数据进行一些更改:
INSERT INTO test.example_table (text_col, int_col, date_col) VALUES
('abc', 0, '2022-10-01 00:00:00'),
('def', 1, NULL),
('ghi', -987, NOW());
UPDATE test.example_table SET int_col=int_col*2;
DELETE FROM test.example_table WHERE text_col = 'abc';
- 打开 BigQuery SQL 工作区并运行以下查询,查看 BigQuery 中的更改:
SELECT * FROM test.example_table ORDER BY id;
恭喜!
Datastream 是数据集成和分析工具包中的一个重要工具!您已掌握了使用 Datastream 将数据从 PostgreSQL 复制到 BigQuery 的基础知识。
本手册的最后更新时间:2025 年 2 月 24 日
本实验的最后测试时间:2025 年 2 月 24 日
版权所有 2025 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。