
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 Cloud Composer 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 資料表中。您要如何整理這些資料,以便貴公司整合及分析資料,取得洞察結果?
Cloud Composer 具備直觀的圖形檢視畫面,可助您建立工作流程,並在不同區域和儲存系統間移動資料。除了上述優點外,這項工具還提供範本,可以輕鬆可靠的在 BigQuery 和 Cloud Storage 間雙向轉移資料。
在本實驗室中,您將完成下列工作,在 Cloud Composer 中建立並執行 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 資源。
連線完成即代表已通過驗證,且專案已設為您的 PROJECT_ID。輸出內容中有一行宣告本工作階段 PROJECT_ID 的文字:
gcloud
是 Google Cloud 的指令列工具,已預先安裝於 Cloud Shell,並支援 Tab 鍵自動完成功能。
點按「授權」。
輸出畫面應如下所示:
輸出內容:
輸出內容:
輸出內容範例:
gcloud
的完整說明,請前往 Google Cloud 並參閱「gcloud CLI overview guide」(gcloud CLI 總覽指南)。
前往 Google Cloud 控制台,在標題列的「搜尋」欄位輸入 Composer,然後點選「產品和頁面」中的「Composer」來建立 Cloud Composer 環境。
接著點選「建立環境」。
從下拉式選單中選取「Composer 3」。
為環境設定下列參數:
名稱:composer-advanced-lab
位置:
映像檔版本:composer-3-airflow-n.n.n-build.n (選擇最新可用的映像檔版本)
在「環境變數」下,選擇「小」。
點選「顯示進階設定」下拉式選單,然後選取「Airflow 資料庫可用區」做為
將其他設定保留預設值。
如果在 Cloud 控制台的「環境」頁面的環境名稱左側顯示綠色勾號,表示環境已建立完成。
Create Cloud Storage buckets and BigQuery destination dataset
。點選「Check my progress」確認目標已達成。
在這項工作中,您將建立兩個 Cloud Storage 多區域 bucket。這些 bucket 會用於在地區間複製匯出的資料表,例如從美國複製到歐盟地區。
方塊,如果顯示「系統會禁止公開存取」彈出式視窗,請點選「確認」
。重複上述步驟,建立另一個位於 EU
區域的 bucket。通用不重複名稱應將位置附在 bucket 結尾 (例如
點選「Check my progress」確認目標已達成。
從 BigQuery 新網頁版 UI 建立歐盟地區的目的地 BigQuery 資料集。
依序前往「導覽選單」>「BigQuery」。
接著,畫面中會顯示「歡迎使用 Cloud 控制台中的 BigQuery」訊息方塊,當中會列出快速入門指南的連結和使用者介面更新內容。
點選「完成」。
接著按一下 Qwiklabs 專案 ID 旁的三點圖示,然後選取「建立資料集」。
點選「Check my progress」確認目標已達成。
Airflow 這個平台能以程式輔助方式建立、安排及監控工作流程。
這項服務可將工作流程建立為工作的有向非循環圖 (DAG)。Airflow 排程器會執行工作站陣列內的工作,同時追蹤指定的依附元件。
DAG:有向無循環圖是工作的集合,用於反映工作之間的關係和依附元件。
運算子:單一工作的說明,通常為小型工作。舉例來說,「BashOperator」是用於執行 Bash 指令。
工作:運算子的參數化執行個體,在 DAG 中為節點。
工作執行個體:工作的特定執行作業,特性為 DAG、工作和時間點。它含有指示性的狀態:「執行中」、「成功」「失敗」、、「略過」...
詳情請參閱概念說明文件。
Cloud Composer 工作流程是由 DAG (有向非循環圖) 組成。bq_copy_across_locations.py 中的程式碼是工作流程的程式碼,也可視為 DAG。現在開啟檔案,查看它的建構方式。接下來要詳細介紹該檔案中的許多重要元件。
為了自動化調度管理所有工作流程工作,DAG 會匯入下列運算子:
DummyOperator
:建立「開始」和「結束」虛擬工作,以便讓 DAG 呈現更佳的圖像結果。BigQueryToCloudStorageOperator
:使用 Avro 格式將 BigQuery 資料表匯出到 Cloud Storage bucket。GoogleCloudStorageToGoogleCloudStorageOperator
:在 Cloud Storage bucket 間複製檔案。GoogleCloudStorageToBigQueryOperator
:從 Cloud Storage bucket 中的 Avro 檔案匯入資料表。read_table_list()
函式是用來讀取設定檔,並建立要複製的資料表清單:bq_copy_us_to_eu_01
,根據預設,系統不會排定 DAG,因此您需要手動觸發。Cloud StoragePlugin(AirflowPlugin)
類別、對應從 Airflow 1.10 穩定分支版本下載的掛鉤和運算子。返回「Composer」,確認環境狀態。
環境建立後,按一下環境名稱即可查看詳細資料。
「環境詳細資料」頁面有各種資訊,例如 Airflow 網路使用者介面網址、Google Kubernetes Engine 叢集 ID、連線至 DAG 資料夾的 Cloud Storage bucket。
下一個步驟會在 Cloud Shell 中完成。
Python 虛擬環境可用來獨立安裝套件,將其與系統區隔開來。
virtualenv
環境: -composer-advanced-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 資料表「dest_bbucks」的來源 Cloud Storage bucket |
gcs_dest_bucket |
{UNIQUE ID}-eu | 用於匯入 BigQuery 資料表目的地的 Cloud Storage bucket |
下一個 gcloud composer
指令會執行 Airflow CLI 子指令變數。子指令會將引數傳遞至 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 指令前,gcloud composer 指令必須加入 --location
標記或設定預設位置。KEY
和 VALUE
指定變數和其設定值。在左側含有 gcloud 相關引數的 gcloud
指令,以及右側的 Airflow 子指令相關引數間,依序加入空格、兩個破折號、空格 ( --
)。此外,如果使用 gcloud composer environments run
指令和變數子指令,在 KEY
和 VALUE
引數間也要加入空格。在 Cloud Shell 中執行下列指令,用您在工作 2 建立的 bucket 名稱取代 gcs_source_bucket
和 gcs_dest_bucket
。
如要查看變數的值,請透過 get
引數執行 Airflow CLI 子指令變數,或使用 Airflow 使用者介面。
例如執行下列指令:
Cloud Composer 會自動在 Airflow 環境註冊 DAG,DAG 會在 3 到 5 分鐘內產生變化。您可以在 Airflow 的網頁介面中查看工作狀態,並確認 DAG 是否並未依據設定排程。
如要使用 Cloud 控制台存取 Airflow 網頁介面:
您先前設定的變數會保留在環境中。
按一下「DAG」分頁標籤,然後等待連結載入完成。
如要以手動方式觸發 DAG,請按一下 composer_sample_bq_copy_across_locations
的執行按鈕:
點選「Check my progress」確認目標已達成。
當您將 DAG 檔案上傳到 Cloud Storage 中的 DAG 資料夾後,Cloud Composer 會剖析檔案。如果沒有發現錯誤,工作流程名稱會顯示在 DAG 清單中,如果符合排程條件,該工作流程會排入要立即執行的作業佇列,這時的設定依據為「無」。
按下執行按鈕後,「執行作業」狀態會顯示為綠色:
如要再次從「圖表」檢視畫面執行工作流程:
在程序執行時重新整理瀏覽器,查看最新資訊。
現在前往 Cloud 控制台的下列頁面,確認工作流程的狀態和結果:
在 Composer 中回到「Environments」(環境) 頁面。
勾選 Composer 環境旁的核取方塊。
點選「DELETE」(刪除)。
在彈出式視窗中,再次點選「DELETE」(刪除) 來確認刪除。
您已透過程式輔助方式,將資料表從美國複製到歐盟地區!本實驗室的參考資料為 David Sabater Dinter 的這篇 網誌文章。
協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。
手冊上次更新日期:2024 年 6 月 21 日
實驗室上次測試日期:2024 年 6 月 21 日
Copyright 2025 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。
此内容目前不可用
一旦可用,我们会通过电子邮件告知您
太好了!
一旦可用,我们会通过电子邮件告知您
One lab at a time
Confirm to end all existing labs and start this one