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
Create Managed Airflow environment.
/ 25
Create two Cloud Storage buckets.
/ 25
Create a dataset.
/ 25
Uploading the DAG and dependencies to Cloud Storage
/ 25
Create Managed Airflow environment.
/ 25
Create two Cloud Storage buckets.
/ 25
Create a dataset.
/ 25
Uploading the DAG and dependencies to Cloud Storage
/ 25
假設您的資料集分散在世界各地,且資料存放在 Google Cloud Storage bucket 或 BigQuery 資料表中,該如何整理這些資料,才能有效整合並加以分析,進而取得業務洞察結果?
Managed Service for Apache Airflow 可協助您透過符合直覺的圖形介面,建構、排定及監控工作流程,在不同區域和儲存系統間移動及處理資料。這項服務提供包含各種運算子和整合功能的彈性架構,能讓您以可靠的方式在 BigQuery 和 Cloud Storage 等服務之間移轉資料。
在本實驗室,您將使用 Managed Service for Apache Airflow 建立並執行 Apache Airflow 工作流程,完成下列工作:
本實驗室的內容包括:
請詳閱以下操作說明。實驗室活動會計時,且中途無法暫停。點選「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 總覽指南。
前往 Google Cloud 控制台,在標題列的「搜尋」欄位輸入 Managed Airflow,然後點選「產品與頁面」專區中的「Managed Airflow」來建立 Managed Airflow 環境。
接著點選「建立環境」。
在下拉式選單中選取「代管 Airflow 第 3 代」。
為環境設定下列參數:
「名稱」:airflow-advanced-lab
「位置」:
「映像檔版本」:composer-3-airflow-2.n.n-build.n (選取版本編號最高的映像檔)
「服務帳戶」:Compute Engine 預設服務帳戶
「彈性模式」:選取「標準彈性」,然後在「Airflow 資料庫可用區」部分選取「
在「環境資源」下選取「小」。
在「網路伺服器網路存取控管」部分,選取「允許所有 IP 位址傳出的存取要求」。
其他設定皆保留預設值。
點選「建立」。
如果在 Cloud 控制台的「環境」頁面的環境名稱左側顯示綠色勾號,表示環境已建立完畢。
建立 Cloud Storage bucket 和 BigQuery 目的地資料集」。點選「Check my progress」,確認目標已達成。
在這項工作中,您將建立兩個 Cloud Storage 多區域 bucket,用於在不同區域之間複製匯出的資料表,例如從美國複製到歐盟區域。
強制禁止公開存取這個 bucket」方塊,如果顯示「系統會禁止公開存取」彈出式視窗,請點選「確認」。
重複上述步驟,建立另一個位於 EU 區域的 bucket。這個 bucket
的名稱在全域範圍內皆不得重複,且後面須加上位置 (例如
點選「Check my progress」,確認目標已達成。
透過 BigQuery 新網頁版 UI 建立歐盟區域的目的地 BigQuery 資料集。
依序前往「導覽選單」>「BigQuery」。
接著,畫面上會顯示「歡迎使用 Cloud 控制台中的 BigQuery」訊息方塊,當中會列出快速入門指南的連結和 UI 更新內容。
點選「完成」。
接著按一下 Qwiklabs 專案 ID 旁的三點圖示,然後選取「建立資料集」。
點選「Check my progress」,確認目標已達成。
Airflow 這個平台能讓您以程式輔助方式建立、監控工作流程及安排時程。
您可以透過 Airflow 建立工作流程,設計成由多項工作組成的有向無環圖 (DAG)。Airflow 排程器會根據指定的依附關係,在多個 worker 上執行工作。
DAG:有向無環圖是工作的集合,編排方式會反映出工作之間的關聯和依附關係。
運算子:單一工作的說明,通常是最小的處理單位。舉例來說,「BashOperator」可用來執行 Bash 指令。
工作:運算子的參數化執行個體,在 DAG 中為節點。
工作執行個體:工作的特定執行作業,由 DAG、工作和時間點這三個要素構成,而且會透過以下狀態表示執行狀況:「執行中」、「成功」、「失敗」、「略過」...
詳情請參閱概念說明文件。
Apache Airflow 中的工作流程是由 DAG (有向無環圖) 組成。bq_copy_across_locations.py 中的程式碼代表工作流程,也就是所謂的 DAG。請開啟這個檔案,瞭解 DAG 的建構方式。下一節將詳細介紹其主要元件。
為了自動調度管理工作流程中的各項工作,DAG 會匯入下列運算子:
DummyOperator:建立「開始」和「結束」虛擬工作,讓 DAG
看起來更清楚易懂。
BigQueryToCloudStorageOperator:將 BigQuery 資料表以 Avro
格式匯出到 Cloud Storage bucket。
GoogleCloudStorageToGoogleCloudStorageOperator:在 Cloud
Storage bucket 之間複製檔案。
GoogleCloudStorageToBigQueryOperator:從 Cloud Storage bucket
中的 Avro 檔案匯入資料表。
read_table_list()
函式是用來讀取設定檔,並建立要複製的資料表清單:
bq_copy_us_to_eu_01,且預設不會排定執行時程,因此需要手動觸發。
Cloud StoragePlugin(AirflowPlugin) 類別,對應從 Airflow
1.10-stable 分支版本下載的掛鉤和運算子。
返回「Managed Airflow」,確認環境狀態。
環境建立後,按一下環境名稱即可查看詳細資料。
「環境詳細資料」頁面有各種資訊,例如 Airflow 網頁 UI 網址、Google Kubernetes Engine 叢集 ID、連結 DAG 資料夾的 Cloud Storage bucket 名稱。
接下來的步驟須在 Cloud Shell 中完成。
Python 虛擬環境可用來獨立安裝套件,將其與系統區隔開來。
virtualenv 環境: -airflow-advance-YOURDAGSBUCKET-bucket。本實驗室會多次使用這個變數。
Airflow 變數是 Airflow 的專屬概念,與環境變數不同。在這個步驟中,您將設定以下三個
Airflow 變數,供要部署的 DAG 使用:table_list_file_path、gcs_source_bucket
和 gcs_dest_bucket。
| 鍵 | 值 | 詳細資料 |
|---|---|---|
table_list_file_path |
/home/airflow/gcs/dags/bq_copy_eu_to_us_sample.csv | 列出來源和目標資料表 (包括資料集) 的 CSV 檔案 |
gcs_source_bucket |
{UNIQUE ID}-us | 從來源匯出 BigQuery 資料表時要使用的 Cloud Storage bucket |
gcs_dest_bucket |
{UNIQUE ID}-eu | 將 BigQuery 資料表匯入目的地時要使用的 Cloud Storage bucket |
接下來的 gcloud composer 指令會執行 Airflow CLI 子指令
variables。這個子指令會將引數傳遞至 gcloud 指令列工具。
請為上表中的每一列各執行一次
composer 指令,以便設定前述的那三個變數。指令格式如下:
(ERROR: gcloud crashed (TypeError): 'NoneType' object is not
callable)。這是透過 gcloud 410.0.0 版使用
gcloud composer environments run 時會發生的已知問題。即使出現錯誤訊息,變數還是會照常完成設定。
ENVIRONMENT_NAME 是環境的名稱。LOCATION 是環境所在的 Compute Engine 區域。執行 gcloud composer
指令前,必須在該指令中加入 --location 標記,或設定預設位置。
KEY 和
VALUE 用來指定要設定的變數及其值。請在左側含有 gcloud
相關引數的 gcloud 指令,以及右側的 Airflow
子指令相關引數之間,依序加入空格、兩個破折號、空格 (
-- )。此外,如果使用
gcloud composer environments run 指令和變數子指令,KEY
和 VALUE 引數中間也要加入空格。
在 Cloud Shell 中執行下列指令,請將 gcs_source_bucket 和
gcs_dest_bucket 改成您在工作 2 建立的 bucket 名稱。
如要查看變數的值,請執行 Airflow CLI 子指令
variables
並搭配 get 引數,或使用
Airflow UI。
例如,您可以執行下列指令:
代管的 Apache Airflow 服務會自動偵測並在 Airflow 環境中註冊 DAG,更新通常會在幾分鐘內生效。您可以透過 Airflow 網頁介面監控工作狀態,並確認 DAG 排程行為是否符合定義的設定。
請按照下列步驟操作,使用 Cloud 控制台存取 Airflow 網頁介面:
您先前設定的變數會保留在環境中。
按一下「DAG」分頁標籤,然後等待連結載入完畢。
點選
composer_sample_bq_copy_across_locations
的播放按鈕,以便手動觸發 DAG:
點選「Check my progress」,確認目標已達成。
將 DAG 檔案上傳至 DAG 資料夾 (設定的儲存位置) 後,Apache Airflow 會剖析該檔案。如果沒有發現錯誤,工作流程就會出現在 DAG 清單中,並根據排程設定排入執行佇列。如果排程設為「None」,工作流程就不會自動執行,須手動觸發才會執行。
按下播放按鈕後,「Runs」狀態會變成綠色:
請按照下列步驟操作,在「Graph」檢視畫面再次執行工作流程:
在程序執行時重新整理瀏覽器,即可查看最新資訊。
現在前往 Cloud 控制台的下列頁面,確認工作流程的狀態和結果:
返回 Cloud Composer 中的「環境」頁面。
選取您的 Cloud Composer 環境。
點選「刪除」。
在開啟的對話方塊點選「刪除」,確認要刪除該 Cloud Composer 環境。
您已透過程式輔助方式,將資料表從美國複製到歐盟區域!本實驗室的內容是根據 David Sabater Dinter 的這篇網誌文章設計。
協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。
使用手冊上次更新日期:2026 年 4 月 20 日
實驗室上次測試日期:2026 年 4 月 20 日
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
Complete this quick step to start your lab.