Create the BigQuery AWS connection

检查我的进度

/ 25

Create the BigQuery Dataset and External Table

检查我的进度

/ 25

Query the External Table

检查我的进度

/ 25

Export query results to AWS S3

检查我的进度

/ 25

此实验可能会提供 AI 工具来支持您学习。
此内容尚未针对移动设备进行优化。
为获得最佳体验,请在桌面设备上访问通过电子邮件发送的链接。

GSP1075

Google Cloud 自学实验

概览

在本实验中,您将学习如何在 AWS 中使用 BigQuery Omni。借助 BigQuery Omni,您可以对存储在 AWS S3 中的数据运行 BigQuery 分析。您将在 Google Cloud BigQuery 与 AWS S3 之间创建授权连接,查询 S3 存储桶中的数据信息(无需移动任何数据),并将查询结果写回 AWS S3 存储桶。本实验内容源自 Google 发布的 BigQuery Omni 指南。

架构概览

架构概览

目标

在本实验中,您将学习如何执行以下任务:

  • 在 Google Cloud 与 AWS 之间创建连接
  • 授权 BigQuery Omni 读取 AWS S3 存储桶中的数据
  • 创建一个 BigQuery 外部表,用于引用 AWS S3 存储桶中的原始数据
  • 对 AWS S3 数据运行查询
  • 将查询结果导出到 AWS S3 存储桶

设置和要求

点击“开始实验”按钮前的注意事项

请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 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 产品和服务,请点击导航菜单,或在搜索字段中输入服务或产品的名称。 “导航菜单”图标和“搜索”字段

任务 1. 创建 BigQuery AWS 连接

BigQuery Omni 通过 Google Cloud 中的已授权连接访问 Amazon S3 数据。每个连接都有自己的唯一 Amazon Web Services (AWS) Identity and Access Management (IAM) 用户。您可以通过 AWS IAM 角色向用户授予权限。AWS IAM 角色中的政策决定了 BigQuery 可以通过每个连接访问哪些数据。

注意:在本实验中,您将同时使用 Google Cloud 控制台和 AWS 控制台,并根据任务说明在两个标签页/窗口之间来回切换。

为 BigQuery 创建 AWS IAM 政策

  1. 登录 AWS 管理控制台。点击实验窗格中的 Open AWS Console(打开 AWS 控制台)按钮,并使用提供的用户名和密码登录。

  2. 在顶部的搜索栏中搜索 Amazon S3,然后选择 S3。在本实验中,我们已预先创建了一个名为 的区域级存储桶,并填充了数据。复制此存储桶的名称,以便在后续步骤中使用。

  3. 在顶部的搜索栏中搜索 AWS Identity and Access Management (IAM),然后选择 IAM。

  4. 在左侧窗格中,选择 Policies(政策),然后点击 bigquery-omni-connection-policy。

  5. 点击 JSON 标签页,然后点击 Edit(修改),并将以下内容粘贴到编辑器中。将 <BUCKET_NAME> 的所有实例替换为在第 2 步中复制的 S3 存储桶名称。

{ "Statement": [ { "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::<BUCKET_NAME>" ], "Sid": "BucketLevelAccess" }, { "Action": [ "s3:GetObject" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::<BUCKET_NAME>", "arn:aws:s3:::<BUCKET_NAME>/*" ], "Sid": "ObjectLevelGetAccess" }, { "Action": [ "s3:PutObject" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::<BUCKET_NAME>", "arn:aws:s3:::<BUCKET_NAME>/*" ], "Sid": "ObjectLevelPutAccess" } ], "Version": "2012-10-17" }
  1. 点击 Next(下一步)。

  2. 点击 Save changes(保存更改)。

验证 BigQuery 的 AWS IAM

  1. 在左侧窗格中,选择 Roles(角色)。

  2. 点击 bigquery-omni-connection 角色。

  3. 复制 ARN,其格式如下,其中 <ACCOUNT_ID> 是您的 AWS 账号 ID。

arn:aws:iam::<ACCOUNT_ID>:role/bigquery-omni-connection

复制的角色 ARN

创建 BigQuery AWS 连接

  1. 在 Google Cloud 控制台的导航菜单中,前往 BigQuery > Studio。

  2. 切换到探索器窗格,选择 + 添加数据。

添加数据

  1. 点击存储空间/数据湖对应的复选框。在“精选数据源”下,依次选择 Amazon S3 和 BigQuery Omni 联合。

  2. 在外部数据源窗格中,输入以下信息:

    • 对于连接类型,选择 AWS 上的 Lakehouse(通过 BigQuery Omni)。
    • 对于连接 ID,输入 bq-omni-aws-connector 作为连接资源的标识符。
    • 对于连接位置,选择 aws-us-east-1。
    • 可选:对于易记名称,输入简单易记的连接名称。易记名称可以是任何容易辨识的值,便于您以后在需要修改连接资源时能够轻松识别。
    • 可选:对于说明,输入关于此连接资源的说明。
    • 对于 AWS 角色 ID,输入您在上一步中复制的完整 IAM 角色 ARN,格式为:arn:aws:iam::AWS_ACCOUNT_ID:role/ROLE_NAME
  3. 点击创建连接。

  4. 返回 BigQuery 传统版探索器,点击项目名称旁边的下拉菜单,然后在外部连接列表中找到新创建的连接。

BigQuery 连接资源信息

  1. 记下 BigQuery Google 身份。这是特定于每个连接的 Google 主账号。复制此 BigQuery Google 身份,您将在下一部分用到它。

您的 BigQuery Google 身份应如下所示:

BigQuery Google identity: 114999259451445753095

点击检查我的进度以验证是否完成了以下目标: 创建 BigQuery AWS 连接

为 AWS 角色添加信任关系

信任关系可让 BigQuery AWS 连接担任相应角色,并访问角色政策中指定的 S3 数据。

  1. 返回 AWS IAM 控制台。

  2. 在左侧窗格中,选择 Roles(角色)。

  3. 选择 bigquery-omni-connection 角色。

  4. 验证 Maximum session duration(最长会话持续时间)是否设置为了 12 小时。由于每次查询最多可运行 6 小时,这一时长设置可允许系统完成一次新的查询尝试。即便将该会话时长增加到 12 小时以上,也不会增加额外的重试次数。如需了解详情,请参阅查询/多语句查询执行时间限制。

  5. 选择 Trust Relationships(信任关系)标签页,然后点击 Edit trust policy(修改信任政策)。

  6. 将政策内容替换为以下内容,并将 BIGQUERY_IDENTITY 替换为您在“创建 BigQuery AWS 连接”的第 6 步中复制的 BigQuery Google 身份。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "accounts.google.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "accounts.google.com:sub": "<BIGQUERY_IDENTITY>" } } } ] }
  1. 点击 Update Policy(更新政策)。

连接现在可以使用了。

注意:AWS 中的角色分配可能会出现传播延迟。如果您在使用新连接时收到此类错误,稍等片刻后重试或许即可解决问题。

任务 2. 对 AWS S3 外部表运行查询

BigQuery Omni 不管理存储在 Amazon S3 中的数据。如需访问 S3 数据,请定义一个外部表。该表之所以称为外部表,是因为其数据未存储在 BigQuery 管理的存储空间内。有关外部表的更多信息,请参阅外部表。

创建 BigQuery 数据集

在本部分中,您将在 AWS S3 存储桶所在的区域中创建一个 BigQuery 数据集。

  1. 在 Google Cloud 控制台中,前往 BigQuery 页面以创建数据集。

  2. 在传统版探索器窗格中,点击项目名称旁边的三点状菜单,然后选择创建数据集。

  3. 在创建数据集页面上,输入以下信息:

    • 在数据集 ID 部分,输入 bq_omni_demo。
    • 对于数据位置,选择 aws-us-east-1。
  4. 点击创建数据集。

创建外部表

在本部分中,您将在上述数据集中创建一个外部表。

  1. 在此 BigQuery 探索器中,展开您的项目并选择刚刚创建的 bq_omni_demo 数据集。

  2. 在详细信息面板中,点击创建表。

  3. 在创建表页面的来源部分,执行以下操作:

    • 在基于以下数据源创建表部分,选择 Amazon S3。
    • 在选择 S3 路径部分,输入 s3://[S3 bucket name]/taxi-data_green_trips_table.csv。
      • 将 [S3 bucket name] 替换为 。
    • 在文件格式部分,选择 CSV。
注意:支持的格式包括 AVRO、PARQUET、ORC、CSV、NEWLINE_DELIMITED_JSON 和 Google 表格。 重要提示:请务必移除 S3 路径中的所有空格,否则会导致错误!
  1. 在创建表页面的目标位置部分,执行以下操作:

    • 对于数据集名称,选择 bq_omni_demo。
    • 在表名称字段中,输入 bq-omni-table。
    • 确认表类型已设置为外部表。
    • 对于连接 ID,从下拉菜单中选择适当的连接 ID。
    • 在架构部分,选中自动检测复选框。
  2. 点击创建表。

注意:您无需指定表架构,因为系统会自动从源文件中检测。

点击检查我的进度以验证是否完成了以下目标: 创建 BigQuery 数据集和外部表

任务 3. 创建外部表并查询 AWS S3 数据

借助 BigQuery Omni,您可以像查询任何 BigQuery 表一样查询外部表。交互式查询的结果最大为 10 GB(预览版)。如需了解详情,请参阅相关限制说明。如果查询结果大于 10 GB,建议您将其导出到 Amazon S3。查询结果存储在 BigQuery 临时表中。

查询外部表

  1. 在 bq-omni-table 详情页面中,点击查询,系统将打开一个新的编辑器。

  2. 在查询编辑器中,执行以下语句:

SELECT * FROM `{{{project_0.project_id|S3 bucket name}}}.bq_omni_demo.bq-omni-table`
  1. 点击运行。

您应该会看到以下输出内容:

查询结果

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

任务 4. 将查询结果导出到 AWS S3

借助 BigQuery Omni,您可以将针对 BigQuery 外部表的查询结果导出到 Amazon S3。

导出查询结果

BigQuery Omni 会将数据写入指定的 Amazon S3 位置,无论当前这里是否已有任何内容。导出的查询结果可能会覆盖已有数据,也可能会与已有数据混合在一起。在“查询编辑器”字段中,您需要运行 Google 标准 SQL 导出查询。Google Cloud 控制台中的默认语法是 Google 标准 SQL。请参考以下模板编写查询语句:

EXPORT DATA WITH CONNECTION `CONNECTION_REGION.CONNECTION_NAME` \ OPTIONS(uri="s3://BUCKET_NAME/PATH", format="FORMAT", ...) \ AS QUERY

您需要替换以下内容:

  • CONNECTION_REGION:创建连接的区域。
  • CONNECTION_NAME:您所创建连接名称。此连接拥有写入 S3 存储桶所需的权限。
  • BUCKET_NAME:要写入数据的 Amazon S3 存储桶。
  • PATH:要写入导出文件的路径
  • FORMAT:支持的格式包括 JSON、AVRO 和 CSV。
  • QUERY:用于分析 BigQuery 外部表数据的查询。
  1. 在本实验中,此查询已预先填充。将该查询粘贴到编辑器中:
EXPORT DATA WITH CONNECTION `aws-us-east-1.bq-omni-aws-connector` OPTIONS(uri="s3://{{{project_0.project_id|S3 bucket name}}}/exports/*", format="CSV") AS SELECT * FROM `{{{project_0.project_id|S3 bucket name}}}.bq_omni_demo.bq-omni-table`
  1. 点击运行。

您应该会看到以下输出内容:

Successfully exported 15417 rows into 1 files.
  1. 前往您的 S3 存储桶,验证相关数据是否已导出到 exports 目录中。

AWS 控制台:将查询结果导出到 S3 存储桶

太棒了!您已成功执行导出查询,并在 S3 存储桶中创建了一个文件。

点击检查我的进度以验证是否完成了以下目标: 将查询结果导出到 AWS S3

恭喜!

在本实验中,您在 Google Cloud 与 AWS 之间创建了连接,并授权 BigQuery Omni 读取 AWS S3 存储桶中的数据。然后,您创建了一个 BigQuery 外部表,该表引用了 AWS S3 存储桶中的原始数据,随后您对这些数据运行了查询,并将查询结果导出到了 AWS S3 存储桶。

后续步骤/了解详情

请务必查看以下资源,详细了解 BigQuery Omni:

Google Cloud 培训和认证

…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。

上次更新手册的时间:2026 年 5 月 18 日

上次测试实验的时间:2026 年 2 月 19 日

版权所有 2026 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。

准备工作

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

使用无痕浏览模式

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

登录控制台

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

此内容目前不可用

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

太好了!

一旦可用,我们会通过邮件联系您

一次一个实验

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

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

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