Create the BigQuery AWS connection

Check my progress

/ 25

Create the BigQuery Dataset and External Table

Check my progress

/ 25

Query the External Table

Check my progress

/ 25

Export query results to AWS S3

Check my progress

/ 25

This lab may incorporate AI tools to support your learning.
This content is not yet optimized for mobile devices.
For the best experience, please visit us on a desktop computer using a link sent by email.

GSP1075

Google Cloud 自學實驗室

總覽

在本實驗室,您將瞭解如何搭配 AWS 使用 BigQuery Omni。這項工具可對儲存在 AWS S3 的資料執行 BigQuery 分析。您將在 Google Cloud BigQuery 和 AWS S3 之間建立授權連線,不必移動資料即可查詢 S3 bucket 中的資料,並將查詢結果寫回 AWS S3 bucket。本實驗室內容源自 Google 發布的 BigQuery Omni 指南。

整體架構

整體架構

目標

在本實驗室,您將瞭解如何執行下列工作:

  • 建立 Google Cloud 與 AWS 之間的連線
  • 授權 BigQuery Omni 讀取 AWS S3 bucket 中的資料
  • 建立 BigQuery 外部資料表,參照 AWS S3 bucket 中的原始資料
  • 對 AWS S3 資料執行查詢
  • 將查詢結果匯出至 AWS S3 bucket

設定和需求

瞭解以下事項後,再點選「Start Lab」按鈕

請詳閱以下操作說明。實驗室活動會計時,且中途無法暫停。點選「Start Lab」後就會開始計時,顯示可使用 Google Cloud 資源的時間。

您將在真正的雲端環境完成實作實驗室活動,而不是模擬或示範環境。為此,我們會提供新的暫時憑證,供您在實驗室活動期間登入及存取 Google Cloud。

為了順利完成這個實驗室,請先確認:

  • 可以使用標準的網際網路瀏覽器 (Chrome 瀏覽器為佳)。
注意事項:請使用無痕模式 (建議選項) 或私密瀏覽視窗執行此實驗室,這可以防止個人帳戶和學員帳戶之間的衝突,避免個人帳戶產生額外費用。
  • 是時候完成實驗室活動了!別忘了,活動一旦開始將無法暫停。
注意事項:務必使用實驗室專用的學員帳戶。如果使用其他 Google Cloud 帳戶,可能會產生額外費用。

如何開始實驗室及登入 Google Cloud 控制台

  1. 按一下「Start Lab」按鈕。如果實驗室會產生費用,請在開啟的對話方塊中選取付款方式。右側的「Lab setup and access」面板會顯示下列項目:

    • 「Open Google Cloud console」按鈕
    • 此實驗室所需的臨時憑證 (使用者名稱和密碼)
    • 完成此實驗室所需的其他資訊 (如有)

    請注意,實驗室計時器位於頁面頂端附近,會顯示剩餘時間。

  2. 按一下「Open Google Cloud console」。如果使用 Chrome 瀏覽器,也可以按一下滑鼠右鍵,選取「在無痕視窗中開啟連結」。

    接著,實驗室會啟動相關資源,並開啟另一個分頁,顯示「登入」頁面。

    提示:您可以在不同的視窗並排開啟分頁。

    注意:頁面顯示「選擇帳戶」對話方塊時,請點選「使用其他帳戶」。
  3. 如有必要,請將下方的 Username 貼到「登入」對話方塊。

    {{{user_0.username | "Username"}}}

    您也可以在「Lab setup and access」面板找到「Username」。

  4. 點選「下一步」。

  5. 複製下方的 Password,並貼到「歡迎使用」對話方塊。

    {{{user_0.password | "Password"}}}

    您也可以在「Lab setup and access」面板找到「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」按鈕,並以提供的使用者名稱和密碼登入。

  2. 在頂端的搜尋列搜尋 Amazon S3,然後選取「S3」。本實驗室已提供區域 bucket ,並預先填入資料。複製這個 bucket 名稱,以便在後續步驟中使用。

  3. 在頂端的搜尋列輸入 AWS Identity and Access Management (IAM),然後選取「IAM」。

  4. 在左側窗格選取「Policies」,然後點選「bigquery-omni-connection-policy」。

  5. 依序點選「JSON」分頁標籤 >「Edit」,並將下列內容貼到編輯器中。將所有的 <BUCKET_NAME> 換成步驟 2 中複製的 S3 bucket 名稱。

{ "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. 切換至「Explorer」窗格,然後選取「+ 新增資料」。

新增資料

  1. 勾選「儲存空間/資料湖泊」核取方塊。在「精選資料來源」下方,依序選取「Amazon S3」>「BigQuery Omni 聯盟」

  2. 在「外部資料來源」窗格,輸入下列資訊:

    • 「連線類型」請選取「Lakehouse on AWS (via BigQuery Omni)」。
    • 「連線 ID」請輸入 bq-omni-aws-connector 做為連線資源 ID。
    • 「連線位置」請選取「aws-us-east-1」。
    • 如有需要,可在「好記名稱」輸入使用者容易記得的連線名稱。這可以是任何值,只要日後需修改時能輕鬆識別即可。
    • 如有需要,可在「說明」輸入這項連線資源的說明。
    • 在「AWS 角色 ID」請輸入上個步驟中複製的完整 IAM 角色 ARN,格式如下:arn:aws:iam::AWS_ACCOUNT_ID:role/ROLE_NAME
  3. 點選「建立連線」。

  4. 返回 BigQuery 傳統版 Explorer,點選專案名稱旁的下拉式選單,然後在「外部連線」清單中找到新建立的連線。

BigQuery 連線資源資訊

  1. 記下「BigQuery Google 身分識別」,這是 Google 針對每個連線採取的原則。請複製此身分識別,下一節會用到。

您的 BigQuery Google 身分識別應如下所示:

BigQuery Google identity: 114999259451445753095

點選「Check my progress」,確認目標已達成。 建立 BigQuery AWS 連線

為 AWS 角色新增信任關係

信任關係可讓 BigQuery AWS 連線擔任該角色,並根據角色政策存取 S3 資料。

  1. 返回 AWS IAM 主控台。

  2. 在左側窗格選取「Roles」。

  3. 選取「bigquery-omni-connection」角色。

  4. 確認「Maximum session duration」是否設為「12 hours」。每項查詢最多可執行六小時,這段時間可讓系統再重試一次。即使將工作階段持續時間延長至超過 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 bucket 相同的區域,建立 BigQuery 資料集。

  1. 在 Google Cloud 控制台,前往「BigQuery」頁面,建立資料集。

  2. 在「傳統版 Explorer」窗格,點選專案名稱旁的三點圖示,然後選取「建立資料集」。

  3. 在「建立資料集」頁面輸入下列資訊:

    • 「資料集 ID」請輸入 bq_omni_demo。
    • 「資料位置」請選擇「aws-us-east-1」。
  4. 點選「建立資料集」。

建立外部資料表

在本節,您將在上述資料集中建立外部資料表。

  1. 在 BigQuery Explorer 展開專案,然後選取已建立的 bq_omni_demo 資料集。

  2. 在詳細資料窗格,點選「建立資料表」。

  3. 在「建立資料表」頁面的「來源」部分,執行下列操作:

    • 「Create table from」請選取「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. 點選「建立資料表」。

注意:您不需要指定資料表結構定義,因為系統會從來源檔案自動偵測。

點選「Check my progress」,確認目標已達成。 建立 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. 點選「執行」。

您應該會看到下列輸出內容:

查詢結果

點選「Check my progress」,確認目標已達成。 查詢外部資料表

工作 4:將查詢結果匯出至 AWS S3

BigQuery Omni 可讓您將 BigQuery 外部資料表的查詢結果匯出至 Amazon S3。

匯出查詢結果

BigQuery Omni 會寫入指定的 Amazon S3 位置,無論是否有任何現有內容。匯出查詢可以覆寫現有資料,或將查詢結果與現有資料混合。在「Query editor」欄位,您需要執行 Google 標準 SQL 匯出查詢。Google 標準 SQL 是 Google Cloud 控制台的預設語法。以下是您需要編寫的範本:

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

您必須替換下列項目:

  • CONNECTION_REGION:建立連線的區域。
  • CONNECTION_NAME:您建立的連線名稱,具備寫入 S3 bucket 的必要權限。
  • BUCKET_NAME:要寫入資料的 Amazon S3 bucket。
  • 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 bucket,確認資料已匯出至 exports 目錄。

AWS 控制台將查詢匯出至 s3 bucket

太好了!您已成功執行匯出查詢,並在 S3 bucket 建立檔案。

點選「Check my progress」,確認目標已達成。 將查詢結果匯出至 AWS S3

恭喜!

在本實驗室,您建立了 Google Cloud 與 AWS 之間的連線,並授權 BigQuery Omni 讀取 AWS S3 bucket 中的資料。接著,您建立 BigQuery 外部資料表,參照 AWS S3 bucket 中的原始資料、執行查詢,並將查詢結果匯出至 AWS S3 bucket。

後續步驟/瞭解詳情

請務必查看下列資源,進一步瞭解 BigQuery Omni:

Google Cloud 教育訓練與認證

協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。

使用手冊上次更新日期:2026 年 5 月 18 日

實驗室上次測試日期:2026 年 2 月 19 日

Copyright 2026 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。

Before you begin

  1. Labs create a Google Cloud project and resources for a fixed time
  2. Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
  3. On the top left of your screen, click Start lab to begin

Use private browsing

  1. Copy the provided Username and Password for the lab
  2. Click Open console in private mode

Sign in to the Console

  1. Sign in using your lab credentials. Using other credentials might cause errors or incur charges.
  2. Accept the terms, and skip the recovery resource page
  3. Don't click End lab unless you've finished the lab or want to restart it, as it will clear your work and remove the project

This content is not currently available

We can notify you via email when it becomes available

Great!

We can contact you via email if it becomes available

One lab at a time

Confirm to end all existing labs and start this one

Use private browsing to run the lab

Using an Incognito or private browser window is the best way to run this lab. This prevents any conflicts between your personal account and the Student account, which may cause extra charges incurred to your personal account.