arrow_back

使用 Dataproc Serverless for Spark 將資料載入 BigQuery

登录 加入
访问 700 多个实验和课程

使用 Dataproc Serverless for Spark 將資料載入 BigQuery

实验 45 分钟 universal_currency_alt 5 积分 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
访问 700 多个实验和课程

總覽

Dataproc Serverless 是全代管服務,可讓您更輕鬆處理開放原始碼資料,以及執行數據分析工作負載,完全不須管理基礎架構或手動調整工作負載。

Dataproc Serverless for Spark 提供最佳化的環境,可輕易將現有的 Spark 工作負載移至 Google Cloud。

在本實驗室中,您將在 Dataproc Serverless 環境執行批次工作負載。此工作負載將採用 Spark 範本處理 Avro 檔案,並建立和載入 BigQuery 資料表。

學習內容

  • 設定環境
  • 下載實驗室資產
  • 設定並執行 Spark 程式碼
  • 查看 BigQuery 中的資料

設定

點選「Start Lab」按鈕前的須知事項

注意:請詳閱以下操作說明。

研究室活動會計時,且中途無法暫停。點選「Start Lab」後就會開始計時,讓您瞭解有多少時間可以使用 Google Cloud 資源。

您會在實際雲端環境中完成 Qwiklabs 實作研究室活動,而非模擬或示範環境。為此,我們會提供新的暫時憑證,讓您在研究室活動期間登入及存取 Google Cloud。

需求條件

如要完成這個研究室活動,請先確認:

  • 可以使用標準的網際網路瀏覽器 (Chrome 瀏覽器為佳)。
  • 已充分預留完成研究室的時間。
注意:如果您擁有個人 Google Cloud 或專案,請勿用於本研究室。 注意:如果您使用的是 Pixelbook,請先開啟無痕式視窗再執行本研究室。

如何開始研究室及登入控制台

  1. 按一下「Start Lab」按鈕。如果研究室會產生費用,畫面中會出現選擇付款方式的彈出式視窗。左側面板會顯示必須在這個研究室中使用的暫時憑證。

    「憑證」面板

  2. 複製使用者名稱,然後點選「Open Google Console」。接著,研究室會啟動相關資源並開啟另一個分頁,當中顯示「Choose an account」頁面。

    注意事項:請在不同視窗並排開啟分頁。
  3. 點選「Choose an account」頁面中的「使用其他帳戶」,「Sign in」頁面隨即開啟。

    「Choose an account」對話方塊,特別標明了「使用其他帳戶」選項

  4. 貼上您在「連線詳細資訊」面板中複製的使用者名稱,然後複製並貼上密碼。

注意事項:請務必使用「連線詳細資訊」面板中的憑證,而非 Google Cloud Skills Boost 的憑證。另外,請勿在這個研究室中使用您自己的 Google Cloud 帳戶,以免產生費用。
  1. 按過後續的所有頁面:
  • 接受條款及細則。
  • 由於這是臨時帳戶,請勿新增救援選項或雙重驗證機制。
  • 請勿申請免費試用。

Cloud 控制台稍後會在這個分頁中開啟。

注意事項:點選畫面左上方的導覽選單,即可查看 Google Cloud 產品與服務清單。 Cloud 控制台選單

啟動 Google Cloud Shell

Google Cloud Shell 是搭載多項開發工具的虛擬機器,提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作。

Google Cloud Shell 提供指令列存取權,方便您使用 Google Cloud 資源。

  1. 在 Cloud 控制台的右上方找到工具列,然後按一下「開啟 Cloud Shell」按鈕。

    特別標明的「Cloud Shell」圖示

  2. 按一下「繼續」

佈建並連線至環境的作業需要一些時間才能完成。連線建立完成即代表已通過驗證,而且專案已設為您的「PROJECT_ID」。示例如下:

在 Cloud Shell 終端機中,特別標明了專案 ID

gcloud 是 Google Cloud 的指令列工具,已預先安裝於 Cloud Shell,並支援 Tab 鍵完成功能。

  • 您可以使用下列指令來列出使用中的帳戶:
gcloud auth list

輸出內容:

Credentialed accounts: - @.com (active)

輸出內容示例:

Credentialed accounts: - google1623327_student@qwiklabs.net
  • 您可以使用下列指令來列出專案 ID:
gcloud config list project

輸出內容:

[core] project =

輸出內容示例:

[core] project = qwiklabs-gcp-44776a13dea667a6 注意事項:如需 gcloud 的完整說明,請參閱 gcloud CLI 總覽指南

工作 1:完成環境設定工作

您會先進行幾項環境設定工作,以便執行 Dataproc Serverless 工作負載。

  1. 在 Cloud Shell 執行下列指令,啟用私人 IP 存取權:
gcloud compute networks subnets update default --region={{{project_0.default_region |REGION}}} --enable-private-ip-google-access
  1. 使用下列指令,建立新的 Cloud Storage bucket 做為測試環境位置:
gsutil mb -p {{{project_0.project_id |PROJECT_ID}}} gs://{{{project_0.project_id |PROJECT_ID}}}
  1. 使用下列指令,建立新的 Cloud Storage bucket,做為 BigQuery 建立和載入資料表的暫時位置:
gsutil mb -p {{{project_0.project_id |PROJECT_ID}}} gs://{{{project_0.project_id |PROJECT_ID}}}-bqtemp
  1. 建立 BigQuery 資料集來儲存資料。
bq mk -d loadavro 完成環境設定工作

工作 2:下載實驗室資產

為了完成實驗室,接著您將下載一些必要資產到實驗室提供的 Compute Engine VM。剩下的步驟會在 Compute Engine VM 中的實驗室內進行。

  1. 在導覽選單點選「Compute Engine」,這裡有佈建好的 Linux VM。點選「lab-vm」執行個體旁邊的「SSH」按鈕。

GCE「VM 執行個體」頁面

  1. 在 VM 終端機提示時,下載 Avro 檔案,此檔案會經過處理以儲存至 BigQuery。
wget https://storage.googleapis.com/cloud-training/dataengineering/lab_assets/idegc/campaigns.avro
  1. 接著將 Avro 檔案移至剛才建立的測試環境 Cloud Storage bucket。
gcloud storage cp campaigns.avro gs://{{{project_0.project_id |PROJECT_ID}}}
  1. 下載包含 Spark 程式碼的封存檔,此程式碼將在 Serverless 環境中執行。
wget https://storage.googleapis.com/cloud-training/dataengineering/lab_assets/idegc/dataproc-templates.zip
  1. 解壓縮封存檔。
unzip dataproc-templates.zip
  1. 切換至 Python 目錄。
cd dataproc-templates/python 下載實驗室資產

工作 3:設定並執行 Spark 程式碼

接下來,您將在 VM 執行個體終端機設定一些環境變數,並執行 Spark 範本,將資料載入 BigQuery。

  1. 為 Dataproc Serverless 設定下列環境變數。
export GCP_PROJECT={{{project_0.project_id |PROJECT_ID}}} export REGION={{{project_0.default_region |REGION}}} export GCS_STAGING_LOCATION=gs://{{{project_0.project_id |PROJECT_ID}}} export JARS=gs://cloud-training/dataengineering/lab_assets/idegc/spark-bigquery_2.12-20221021-2134.jar
  1. 執行下列程式碼,以執行「Spark Cloud Storage 到 BigQuery」範本,將 Avro 檔案載入 BigQuery。
./bin/start.sh \ -- --template=GCSTOBIGQUERY \ --gcs.bigquery.input.format="avro" \ --gcs.bigquery.input.location="gs://{{{project_0.project_id |PROJECT_ID}}}" \ --gcs.bigquery.input.inferschema="true" \ --gcs.bigquery.output.dataset="loadavro" \ --gcs.bigquery.output.table="campaigns" \ --gcs.bigquery.output.mode=overwrite\ --gcs.bigquery.temp.bucket.name="{{{project_0.project_id |PROJECT_ID}}}-bqtemp" 請注意,您可以放心忽略所有下列警告:「WARN FileStreamSink: Assume no metadata directory. Error while looking for metadata directory in the path...」由於這是小型測試,不需要中繼資料目錄。 注意事項:如果出現批次工作失敗的錯誤訊息,請稍候並再次執行指令,直到工作成功。 設定並執行 Spark 程式碼

工作 4:確認資料已載入 BigQuery

成功執行 Spark 範本後,就能在 BigQuery 檢驗結果了。

  1. 在 BigQuery 查看新資料表中的資料。
bq query \ --use_legacy_sql=false \ 'SELECT * FROM `loadavro.campaigns`;'
  1. 查詢結果大致應如下所示:

輸出內容範例:

+------------+--------+---------------------+--------+---------------------+----------+-----+ | created_at | period | campaign_name | amount | advertising_channel | bid_type | id | +------------+--------+---------------------+--------+---------------------+----------+-----+ | 2020-09-17 | 90 | NA - Video - Other | 41 | Video | CPC | 81 | | 2021-01-19 | 30 | NA - Video - Promo | 325 | Video | CPC | 137 | | 2021-06-28 | 30 | NA - Video - Promo | 78 | Video | CPC | 214 | | 2021-03-15 | 30 | EU - Search - Brand | 465 | Search | CPC | 170 | | 2022-01-01 | 30 | EU - Search - Brand | 83 | Search | CPC | 276 | | 2020-02-18 | 30 | EU - Search - Brand | 30 | Search | CPC | 25 | | 2021-06-08 | 30 | EU - Search - Brand | 172 | Search | CPC | 201 | | 2020-11-29 | 60 | EU - Search - Other | 83 | Search | CPC | 115 | | 2021-09-11 | 30 | EU - Search - Other | 86 | Search | CPC | 237 | | 2022-02-17 | 30 | EU - Search - Other | 64 | Search | CPC | 296 | +------------+--------+---------------------+--------+---------------------+----------+-----+ 確認資料已載入 BigQuery

恭喜!

您使用 Dataproc Serverless for Spark,將 Avro 檔案載入 BigQuery 資料表中,成功執行批次工作負載。

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

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

请使用无痕模式或无痕式浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。