arrow_back

Datastream:将数据从 PostgreSQL 复制到 BigQuery

登录 加入
访问 700 多个实验和课程

Datastream:将数据从 PostgreSQL 复制到 BigQuery

实验 1 小时 universal_currency_alt 1 个积分 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
访问 700 多个实验和课程

GSP1052

Google Cloud 自学实验的徽标

概览

在当今竞争激烈的环境中,组织需要能够基于实时数据快速轻松地做出决策。利用 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 控制台

  1. 点击开始实验按钮。如果该实验需要付费,系统会打开一个对话框供您选择支付方式。左侧是“实验详细信息”窗格,其中包含以下各项:

    • “打开 Google Cloud 控制台”按钮
    • 剩余时间
    • 进行该实验时必须使用的临时凭据
    • 帮助您逐步完成本实验所需的其他信息(如果需要)
  2. 点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。

    该实验会启动资源并打开另一个标签页,显示“登录”页面。

    提示:将这些标签页安排在不同的窗口中,并排显示。

    注意:如果您看见选择账号对话框,请点击使用其他账号
  3. 如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。

    {{{user_0.username | "<用户名>"}}}

    您也可以在“实验详细信息”窗格中找到“用户名”。

  4. 点击下一步

  5. 复制下面的密码,然后将其粘贴到欢迎对话框中。

    {{{user_0.password | "<密码>"}}}

    您也可以在“实验详细信息”窗格中找到“密码”。

  6. 点击下一步

    重要提示:您必须使用实验提供的凭据。请勿使用您的 Google Cloud 账号凭据。 注意:在本实验中使用您自己的 Google Cloud 账号可能会产生额外费用。
  7. 继续在后续页面中点击以完成相应操作:

    • 接受条款及条件。
    • 由于这是临时账号,请勿添加账号恢复选项或双重验证。
    • 请勿注册免费试用。

片刻之后,系统会在此标签页中打开 Google Cloud 控制台。

注意:如需访问 Google Cloud 产品和服务,请点击导航菜单,或在搜索字段中输入服务或产品的名称。 “导航菜单”图标和“搜索”字段

激活 Cloud Shell

Cloud Shell 是一种装有开发者工具的虚拟机。它提供了一个永久性的 5GB 主目录,并且在 Google Cloud 上运行。Cloud Shell 提供可用于访问您的 Google Cloud 资源的命令行工具。

  1. 点击 Google Cloud 控制台顶部的激活 Cloud Shell “激活 Cloud Shell”图标

  2. 在弹出的窗口中执行以下操作:

    • 继续完成 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 自动补全功能。

  1. (可选)您可以通过此命令列出活跃账号名称:
gcloud auth list
  1. 点击授权

输出:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (可选)您可以通过此命令列出项目 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 数据库

  1. 运行以下命令以启用 Cloud SQL API:
gcloud services enable sqladmin.googleapis.com
  1. 运行以下命令,以创建 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');

配置数据库以用于复制

  • 运行以下 SQL 命令来创建发布内容和复制槽:
CREATE PUBLICATION test_publication FOR ALL TABLES; ALTER USER POSTGRES WITH REPLICATION; SELECT PG_CREATE_LOGICAL_REPLICATION_SLOT('test_replication', 'pgoutput');

任务 2. 创建 Datastream 资源并开始复制

数据库现已准备就绪,接下来创建 Datastream 连接配置文件和数据流以开始复制。

  1. 导航菜单中,点击查看所有产品,然后在 Analytics 下选择 Datastream

  2. 点击启用,以启用 Datastream API。

64c95a330abbceb6.png

创建连接配置文件

创建两个连接配置文件,一个用于 PostgreSQL 源,另一个用于 BigQuery 目标位置。

PostgreSQL 连接配置文件

  1. 在 Cloud 控制台中,前往连接配置文件标签页,然后点击创建配置文件
连接配置文件页面,页面右上角显示有创建配置文件的链接
  1. 选择 PostgreSQL 连接配置文件类型。
PostgreSQL 图块是所显示的选项之一
  1. 使用 postgres-cp 作为连接配置文件的名称和 ID。

  2. 输入数据库连接详细信息:

  • 区域:
  • 之前(任务 1)创建的 Cloud SQL 实例的 IP 和端口
    • 如需查找 Cloud SQL 实例的 IP 地址,请执行以下操作:
      • 在导航菜单中,点击“SQL”。
      • 在“SQL”页面上,找到您的 PostgreSQL 实例(通常名为 postgres-db)。
      • 复制实例的公共 IP 地址。
  • 用户名:postgres
  • 密码:pwd
  • 数据库:postgres
  1. 点击继续

  2. 选择 IP 许可清单连接方法,然后点击继续

  3. 点击运行测试,确保 Datastream 能够访问数据库。

  4. 点击创建

BigQuery 连接配置文件

  1. 在 Cloud 控制台中,前往连接配置文件标签页,然后点击创建配置文件
连接配置文件页面,页面右上角显示有创建配置文件的链接
  1. 选择 BigQuery 连接配置文件类型。
BigQuery 图块是所显示的选项之一
  1. 使用 bigquery-cp 作为连接配置文件的名称和 ID。

  2. 区域

  3. 点击创建

创建数据流

创建数据流,该数据流将连接之前创建的连接配置文件,并定义将数据从源传输到目标位置的配置。

  • 在 Cloud 控制台中,前往数据流标签页,然后点击创建数据流
数据流标签页,页面右上角显示创建数据流的链接

定义数据流详细信息

  1. 使用 test-stream 作为数据流的名称和 ID。
  2. 区域
  3. 选择 PostgreSQL 作为数据源类型
  4. 选择 BigQuery 作为目标类型
  5. 点击继续
完成创建数据流详细信息页面的第 1 步

定义数据源

  1. 选择在上一步中创建的 postgres-cp 连接配置文件。
  2. (可选)点击运行测试来测试连接
  3. 点击继续
完成创建数据流页面的第 2 步

配置数据源

  1. 指定 test_replication 作为复制槽名称。
  2. 指定 test_publication 作为发布内容名称。
完成创建数据流页面的第 3 步
  1. 选择将 test 架构用于复制。
从数个选项中选定了 test 架构
  1. 点击继续

定义目标位置

  • 选择在上一步中创建的 bigquery-cp 连接配置文件,然后点击继续
创建数据流页面的第 4 步,bigquery-cp 处于选中状态

配置目标位置

  1. 选择区域并选择 作为 BigQuery 数据集位置。
  2. 将过时限制设置为 0 秒
创建数据流页面的第 5 步,目标位置已选定
  1. 点击继续

检查并创建数据流

  • 最后,点击运行验证来验证数据流详细信息。成功完成验证后,点击创建并启动,然后确认创建并启动
带有绿色对勾标记的验证结果

等待约 1-2 分钟的时间,直到数据流状态显示为正在运行。

点击检查我的进度以验证是否完成了以下目标:

创建 Datastream 资源

任务 3. 在 BigQuery 中查看数据

数据流现已运行,接下来查看复制到 BigQuery 数据集的数据。

  1. 在 Google Cloud 控制台中,点击导航菜单中的 BigQuery

在弹出式窗口中,点击完成

  1. 在 BigQuery Studio 探索器中,展开项目节点以查看数据集列表。
  2. 展开 test 数据集节点。
  3. 点击 example_table 表。
  4. 点击预览标签页,查看 BigQuery 中的数据。
注意:数据可能需要几分钟的时间才能在预览部分显示。 显示 example_table 表的 BigQuery 探索器页面
  1. 如果您在预览标签页上看到“没有可显示的数据”消息,可以使用以下命令验证数据。
SELECT * FROM test.example_table ORDER BY id;

任务 4. 检查数据源中的更改是否已复制到 BigQuery

  1. 在 Cloud Shell 中运行以下命令来连接到 Cloud SQL 数据库(密码为 pwd):
gcloud sql connect postgres-db --user=postgres
  1. 运行以下 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';
  1. 打开 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 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

请使用无痕模式或无痕式浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。