Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Disable and re-enable the Dataflow API
/ 10
Create a Cloud Storage Bucket
/ 10
Copy Files to Your Bucket
/ 10
Create the BigQuery Dataset (name: lake)
/ 20
Build a Data Ingestion Dataflow Pipeline
/ 10
Build a Data Transformation Dataflow Pipeline
/ 10
Build a Data Enrichment Dataflow Pipeline
/ 10
Build a Data lake to Mart Dataflow Pipeline
/ 20
Datafow 這項 Google Cloud 服務整合串流與批次資料處理功能,可大規模處理資料。Datafow 以 Apache Beam 專案為基礎,該服務屬於開放原始碼模型,可定義批次與串流資料平行處理管道。只要使用任一開放原始碼 Apache Beam SDK,即可自行建構程式來定義管道,並運用 Dataflow 執行。
在本實驗室中,您將透過 Apache Beam SDK for Python 在 Dataflow 建構及執行管道,將 Cloud Storage 的資料擷取至 BigQuery,接著使用 BigQuery 轉換及充實資料。
本實驗室將說明如何建構及執行 Dataflow 管道 (Python),用來完成下列作業:
請詳閱以下操作說明。實驗室活動會計時,且中途無法暫停。點選「Start Lab」後就會開始計時,顯示可使用 Google Cloud 資源的時間。
您將在真正的雲端環境完成實作實驗室活動,而不是模擬或示範環境。為此,我們會提供新的暫時憑證,供您在實驗室活動期間登入及存取 Google Cloud。
為了順利完成這個實驗室,請先確認:
點選「Start Lab」按鈕。如果實驗室會產生費用,畫面上會出現選擇付款方式的對話方塊。左側的「Lab Details」窗格會顯示下列項目:
點選「Open Google Cloud console」;如果使用 Chrome 瀏覽器,也能按一下滑鼠右鍵,選取「在無痕視窗中開啟連結」。
接著,實驗室會啟動相關資源,並開啟另一個分頁,顯示「登入」頁面。
提示:您可以在不同的視窗中並排開啟分頁。
如有必要,請將下方的 Username 貼到「登入」對話方塊。
您也可以在「Lab Details」窗格找到 Username。
點選「下一步」。
複製下方的 Password,並貼到「歡迎使用」對話方塊。
您也可以在「Lab Details」窗格找到 Password。
點選「下一步」。
按過後續的所有頁面:
Google Cloud 控制台稍後會在這個分頁開啟。
Cloud Shell 是搭載多項開發工具的虛擬機器,提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作。Cloud Shell 提供指令列存取權,方便您使用 Google Cloud 資源。
點按 Google Cloud 控制台頂端的「啟用 Cloud Shell」圖示 。
系統顯示視窗時,請按照下列步驟操作:
連線建立完成即代表已通過驗證,而且專案已設為您的 Project_ID:
gcloud 是 Google Cloud 的指令列工具,已預先安裝於 Cloud Shell,並支援 Tab 鍵自動完成功能。
輸出內容:
輸出內容:
gcloud 的完整說明,請前往 Google Cloud 參閱 gcloud CLI 總覽指南。
請重新啟動連至 Dataflow API 的連線,確保可順利使用這個必要的 API。
API 重新啟用後,頁面上會顯示「停用」選項。
點選「Check my progress」,確認工作已完成。
下載要在本實驗室使用的 Dataflow Python 範例程式碼。
您需要在 Cloud Shell 建立 Cloud Storage bucket,然後將檔案 (即 Dataflow Python 範例程式碼) 複製到該 bucket。
點選「Check my progress」,確認工作已完成。
gsutil 指令,將檔案複製到剛才建立的 Cloud
Storage bucket:
點選「Check my progress」,確認工作已完成。
在這項工作中,您將建立 BigQuery 資料集,用來存放所有載入 BigQuery 的資料表。
lake:
點選「Check my progress」,確認工作已完成。
在這項工作中,您將查看管道程式碼來瞭解其作用,然後設定並執行該管道。
資料擷取管道會使用 TextIO 來源和 BigQueryIO 目的地,將 Cloud Storage 的資料擷取至 BigQuery 資料表。具體來說,這個管道應能完成以下工作:
您可以在 Cloud Shell 等整合式開發環境 (IDE) 中使用 Gemini Code Assist,取得程式碼相關指引或解決程式碼問題。Gemini Code Assist 必須先啟用,才能開始使用。
點選畫面底部狀態列中的「Cloud Code - No Project」。
依指示授權外掛程式。如果系統未自動選取專案,請點按「選取 Google Cloud 專案」,然後選擇
確認狀態列的 Cloud Code 狀態訊息中已顯示 Google Cloud 專案 (
在本節中,您會提示 Gemini Code Assist 分享資料擷取管道的詳細資訊,以便向新團隊成員提供簡介。
在 Cloud Shell 編輯器的檔案總管中,依序前往「dataflow_python_examples」>「dataflow_python_examples」>「data_ingestion.py」。
開啟 data_ingestion.py 檔案。這項動作會啟用 Gemini Code
Assist,編輯器右上角出現
圖示時,就代表該工具已啟用。
點選「Gemini Code Assist: Smart Actions」
圖示,然後選取「Explain this」。
Gemini Code Assist 會開啟對話窗格,並預先填入提示詞
Explain this。在 Code Assist
對話的內嵌文字方塊中,將預先填入的提示詞改成下列內容,然後點選「Send」:
這段程式碼會將 Cloud Storage 的資料檔案填入 BigQuery 資料表。Gemini Code Assist
對話視窗中會顯示 data_ingestion.py 檔案內程式碼的詳細說明。
在本節中,您將返回 Cloud Shell 工作階段,設定必要的 Python 程式庫。
這個實驗室的 Dataflow 工作需要搭配
Python3.8。為確保使用的是正確版本,您需要在 Python 3.8 Docker
容器中執行 Dataflow 程序。
這個指令會使用最新的 Python 3.8 穩定版提取 Docker
容器,並執行指令殼層,在容器中執行後續指令。-v
旗標會提供原始碼做為容器的 volume,讓您在 Cloud Shell
編輯器修改程式碼,同時繼續在執行中的容器內存取原始碼。
apache-beam:
這段程式碼會啟動所需的 worker,並在管道完成作業後將其關閉。
「Dataflow」頁面開啟後,請查看工作狀態。
「工作狀態」顯示「已完成」後,即可前往下一個步驟。這個擷取管道從啟動、完成作業到關閉,大約需要五分鐘。
前往 BigQuery (依序點選「導覽選單」>「BigQuery」) 檢查資料是否確實填入。
點選專案名稱,查看 lake 資料集底下的
usa_names 資料表。
usa_names 資料樣本。
usa_names 資料表,請重新整理頁面,或使用傳統版 BigQuery 使用者介面查看。
點選「Check my progress」,確認工作已完成。
在這項工作中,您將查看資料轉換管道來瞭解其作用,接著執行該管道以處理 Cloud Storage 檔案,最後將結果輸出至 BigQuery。
資料轉換管道也會使用 TextIO 來源和 BigQueryIO 目的地,將 Cloud Storage 的資料擷取至 BigQuery 資料表,但還會進行額外的資料轉換工作。具體來說,這個管道應能完成以下工作:
在本節中,您會提示 Gemini Code Assist 分享額外的資料轉換管道資訊,進一步協助新團隊成員。
在 Cloud Shell 選單列,點選「開啟編輯器」。
在 Cloud Shell 編輯器中,前往同一目錄下的
data_transformation.py 檔案。如前所述,請注意編輯器右上角的
圖示。
點選「Gemini Code Assist: Smart Actions」
圖示,然後選取「Explain this」。
Gemini Code Assist 會開啟對話窗格,並預先填入提示詞
Explain this。在 Code Assist
對話的內嵌文字方塊中,將預先填入的提示詞改成下列內容,然後點選「Send」:
Gemini Code Assist 對話視窗中會顯示
data_transformation.py 檔案內程式碼的說明。
前往 Google Cloud 控制台,在標題列的「搜尋」欄位輸入 Dataflow,然後點選搜尋結果中的「Dataflow」。
點選工作名稱,查看這項工作的狀態。
這個 Dataflow 管道從啟動、完成作業到關閉,大約需要五分鐘。
您應該會在 lake 資料集底下看到
usa_names_transformed 資料表。
usa_names_transformed 資料樣本。
usa_names_transformed 資料表,請重新整理頁面,或使用傳統版 BigQuery 使用者介面查看。
點選「Check my progress」,確認工作已完成。
現在您將建構 data enrichment 管道來完成下列作業:
在本節中,您會運用 Gemini Code Assist 的 AI 輔助功能,查看及編輯 data enrichment 管道的 Python 程式碼。
在 Cloud Shell 選單列,點選「開啟編輯器」。
在 Cloud Shell 編輯器中,前往同一目錄下的
data_enrichment.py。如前所述,請注意編輯器右上角的
圖示。
點選工具列上的「Gemini Code Assist: Smart Actions」
圖示。
將下列提示詞貼到透過工具列開啟的 Gemini Code Assist 內嵌文字欄位,更新第 83 行的程式碼。
按下 Enter 鍵,提示 Gemini Code Assist 據此修改程式碼。
在「Gemini Diff」檢視畫面出現提示時,點選「接受」。
data_enrichment.py 檔案中更新後的第 83
行程式碼,現在看起來會像這樣:
這個 Dataflow 管道從啟動、完成作業到關閉,大約需要五分鐘。
您應該會在 lake 資料集底下看到
usa_names_enriched 資料表。
usa_names_enriched 資料樣本。
usa_names_enriched 資料表,請重新整理頁面,或使用傳統版 BigQuery 使用者介面查看。
點選「Check my progress」,確認工作已完成。
現在您將建構並使用 Dataflow 管道,從兩個 BigQuery 資料來源讀取資料,然後 join 資料來源。具體來說,這個管道應能完成以下工作:
首先請查看
data_lake_to_mart.py 程式碼來瞭解其作用,接著在雲端執行這個管道。
data_lake_to_mart.py 檔案。
請詳閱檔案註解,瞭解程式碼的作用。這段程式碼會 join 兩份資料表,並將結果寫入新的 BigQuery 資料表。
前往 Google Cloud 控制台,在標題列的「搜尋」欄位輸入 Dataflow,然後點選搜尋結果中的「Dataflow」。
點選這項新工作來查看狀態。
這個 Dataflow 管道從啟動、完成作業到關閉,大約需要五分鐘。
您應該會在 lake 資料集底下看到
orders_denormalized_sideinput 資料表。
orders_denormalized_sideinput 資料樣本。
orders_denormalized_sideinput 資料表,請重新整理頁面,或使用傳統版 BigQuery 使用者介面查看。
點選「Check my progress」,確認工作已完成。
請回答下列選擇題,確實掌握這個實驗室介紹的概念。按照您的理解盡力回答即可。
您已在 Gemini Code Assist 的輔助下,順利使用 Dataflow 執行 Python 程式碼,將 Cloud Storage 的資料擷取至 BigQuery,並在 BigQuery 轉換及充實資料。
想瞭解更多資訊嗎?歡迎瀏覽下列官方說明文件:
協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。
使用手冊上次更新日期:2025 年 9 月 1 日
實驗室上次測試日期:2025 年 9 月 1 日
Copyright 2026 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。
This content is not currently available
We will notify you via email when it becomes available
Great!
We will contact you via email if it becomes available
One lab at a time
Confirm to end all existing labs and start this one