這五個 Lab 其實是 Google Cloud 資料處理工具鏈的完整學習路徑! 從大資料集群管理(Dataproc)到資料準備(Dataprep),再到串流處理(Dataflow),每個工具都有其獨特的定位和應用場景。 建議先從 Dataproc 開始熟悉大資料處理概念,再循序學習資料準備和串流處理技巧。
GSP103 - Dataproc: Qwik Start - Console
GSP104 - Dataproc: Qwik Start - Command Line
GSP105 - Dataprep: Qwik Start
GSP192 - Dataflow: Qwik Start - Templates
GSP207 - Dataflow: Qwik Start - Python
Google Cloud 資料處理工具鏈涵蓋了從資料儲存、清洗、轉換到串流處理的完整生命週期。這些工具讓開發者能夠處理各種規模的資料,從靜態資料集到即時串流資料,為現代資料分析提供了強大的基礎設施。
主要特色
➊ 大資料集群管理:Dataproc 提供完全受管理的 Apache Spark 和 Hadoop 環境
➋ 視覺化資料準備:Dataprep 提供直觀的拖放式資料清洗和轉換介面
➌ 串流資料處理:Dataflow 支援即時資料管道和批次處理
➍ 多種操作方式:支援 Console 介面和命令行操作
➎ 模板化部署:Dataflow 提供預建模板快速部署常見資料管道
➏ 程式化開發:支援 Python SDK 進行自訂資料處理邏輯
Lab 實作
➊ 建立 Dataproc 集群並執行 Spark 作業計算 Pi 值
➋ 使用命令行管理 Dataproc 集群和動態調整 worker 節點
➌ 在 Dataprep 中匯入資料、清洗不匹配資料並合併資料集
➍ 使用 Dataflow 模板建立 Pub/Sub 到 BigQuery 的串流管道
➎ 安裝 Apache Beam SDK 並在本地和雲端執行資料處理 pipeline
➏ 驗證資料處理結果並查詢 BigQuery 中的即時資料
𝕂𝕖𝕖𝕡 𝕝𝕖𝕒𝕣𝕟𝕚𝕟𝕘. 𝕂𝕖𝕖𝕡 𝕙𝕒𝕔𝕜𝕚𝕟𝕘!
實作影片
GSP105 因為 Lab 無法完成(有 Bug)從缺
指令整理
export PROJECT_ID=$(gcloud config get-value project)
export REGION="us-central1" # 影響 Dataproc 和 Dataflow 的部署區域
export BUCKET_NAME=$PROJECT_ID # 用於 Dataflow 的暫存和結果儲存
核心概念一:大資料集群管理與權限設定
Dataproc 需要正確的 IAM 權限才能存取 Cloud Storage 和執行作業。這是大資料處理的基礎,確保服務帳戶有足夠權限操作儲存和計算資源。
# 為 Compute Engine 預設服務帳戶添加必要權限
gcloud projects add-iam-policy-binding $PROJECT_ID \\\\
--member=serviceAccount:[email protected] \\\\
--role=roles/storage.admin
gcloud projects add-iam-policy-binding $PROJECT_ID \\\\
--member=serviceAccount:[email protected] \\\\
--role=roles/dataproc.worker
# 啟用 Private Google Access 以支援 Dataproc 操作
gcloud compute networks subnets update default --region=$REGION --enable-private-ip-google-access
常見坑點:服務帳戶權限不足會導致集群創建失敗,區域設定錯誤會影響資源部署
概念連結:為後續的 Dataproc 集群創建和作業提交提供權限基礎
核心概念二:Dataproc 集群生命週期管理
Dataproc 提供完全受管理的 Spark/Hadoop 環境,支援動態擴縮容。理解集群的創建、作業提交和調整流程是掌握大資料處理的關鍵。
# 創建 Dataproc 集群
gcloud dataproc clusters create example-cluster \\\\
--worker-boot-disk-size 500 \\\\
--worker-machine-type=e2-standard-4 \\\\
--master-machine-type=e2-standard-4
# 提交 Spark 作業
gcloud dataproc jobs submit spark --cluster example-cluster \\\\
--class org.apache.spark.examples.SparkPi \\\\
--jars file:///usr/lib/spark/examples/jars/spark-examples.jar -- 1000
# 動態調整集群大小
gcloud dataproc clusters update example-cluster --num-workers 4
常見坑點:集群創建需要時間,作業參數要正確傳遞,worker 數量調整會影響成本
概念連結:與 Cloud Storage 權限設定配合,為資料處理提供計算資源
核心概念三:串流資料管道部署
Dataflow 支援即時資料處理,使用模板可以快速部署常見的資料管道模式。理解模板參數和部署流程是掌握串流處理的基礎。
# 部署 Pub/Sub to BigQuery 模板
gcloud dataflow jobs run iotflow \\\\
--gcs-location gs://dataflow-templates-us-central1/latest/PubSub_to_BigQuery \\\\
--region us-central1 \\\\
--worker-machine-type e2-medium \\\\
--staging-location gs://$BUCKET_NAME/temp \\\\
--parameters inputTopic=projects/pubsub-public-data/topics/taxirides-realtime,outputTableSpec=$PROJECT_ID:taxirides.realtime
常見坑點:模板參數要正確設定,staging location 要存在,區域設定要一致
概念連結:與 BigQuery 資料集創建配合,完成端到端的串流資料處理
核心概念四:程式化資料處理開發
Apache Beam SDK 提供統一的程式設計模型,支援本地開發和雲端執行。理解 pipeline 的開發、測試和部署流程是掌握進階資料處理的關鍵。
# 安裝 Apache Beam SDK
pip install 'apache-beam[gcp]'==2.42.0
# 本地執行 pipeline
python -m apache_beam.examples.wordcount --output OUTPUT_FILE
# 雲端執行 pipeline
python -m apache_beam.examples.wordcount \\\\
--project $PROJECT_ID \\\\
--runner DataflowRunner \\\\
--staging_location $BUCKET/staging \\\\
--temp_location $BUCKET/temp \\\\
--output $BUCKET/results/output \\\\
--region $REGION
常見坑點:Python 版本要相容,Docker 環境要正確設定,runner 參數要區分本地和雲端
概念連結:與 Cloud Storage bucket 創建配合,提供完整的程式化資料處理解決方案