实验设置说明和要求
保护您的账号和进度。请务必在无痕浏览器窗口中,使用实验凭证运行此实验。

使用 Dataflow 為即時資訊主頁建立串流資料 pipeline

实验 1 小时 universal_currency_alt 5 积分 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
此内容尚未针对移动设备进行优化。
为获得最佳体验,请在桌面设备上访问通过电子邮件发送的链接。

總覽

在本實驗室中,您是紐約市計程車隊的老闆,並希望能即時監控業務狀況。您將建立串流資料 pipeline 來記錄多項資訊,包括計程車收益、乘客數量和行程狀態等,並在管理資訊主頁中以圖表呈現結果。

目標

本實驗室的內容包括:

  • 透過範本建立 Dataflow 工作
  • 將 Dataflow pipeline 串流至 BigQuery
  • 在 BigQuery 中監控 Dataflow pipeline
  • 使用 SQL 分析結果
  • 在 Looker Studio 以圖表呈現重要指標

設定和需求

每個實驗室都會提供新的 Google Cloud 專案和一組資源,讓您在時限內免費使用。

  1. 按一下「Start Lab」按鈕。如果研究室會產生費用,畫面中會出現選擇付款方式的彈出式視窗。左側的「Lab Details」窗格會顯示下列項目:

    • 「Open Google Cloud console」按鈕
    • 剩餘時間
    • 必須在這個研究室中使用的臨時憑證
    • 完成這個實驗室所需的其他資訊 (如有)
  2. 點選「Open Google Cloud console」;如果使用 Chrome 瀏覽器,也能按一下滑鼠右鍵,選取「在無痕視窗中開啟連結」

    接著,實驗室會啟動相關資源並開啟另一個分頁,當中顯示「登入」頁面。

    提示:您可以在不同的視窗中並排開啟分頁。

    注意:如果頁面中顯示「選擇帳戶」對話方塊,請點選「使用其他帳戶」
  3. 如有必要,請將下方的 Username 貼到「登入」對話方塊。

    {{{user_0.username | "Username"}}}

    您也可以在「Lab Details」窗格找到 Username

  4. 點選「下一步」

  5. 複製下方的 Password,並貼到「歡迎使用」對話方塊。

    {{{user_0.password | "Password"}}}

    您也可以在「Lab Details」窗格找到 Password

  6. 點選「下一步」

    重要事項:請務必使用實驗室提供的憑證,而非自己的 Google Cloud 帳戶憑證。 注意:如果使用自己的 Google Cloud 帳戶來進行這個實驗室,可能會產生額外費用。
  7. 按過後續的所有頁面:

    • 接受條款及細則。
    • 由於這是臨時帳戶,請勿新增救援選項或雙重驗證機制。
    • 請勿申請免費試用。

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

注意:如要查看列出 Google 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:建立 BigQuery 資料集

在這項工作中,您將建立 taxirides 資料集,建立方法有兩種,可以使用 Google Cloud Shell 或 Google Cloud 控制台。

本實驗室從紐約市計程車暨禮車管理局的公開資料集中,擷取部分內容,並整理成以半形逗號分隔的小型資料檔案,供您模擬定期更新的計程車資料。

BigQuery 是無伺服器的 data warehouse,當中的資料表會整理成資料集。在本實驗室中,您將使用 Dataflow 傳送獨立檔案中的計程車資料,並將這些資料儲存至 BigQuery。完成這項設定後,系統就會自動處理及載入任何匯入來源 Cloud Storage bucket 的新資料檔案。

請使用下列任一種方法建立新的 BigQuery 資料集:

方法 1:指令列工具

  1. 在「Cloud Shell」Cloud Shell 圖示 中執行下列指令,建立 taxirides 資料集。
bq --location={{{project_0.default_region|Region}}} mk taxirides
  1. 執行下列指令,建立 taxirides.realtime 資料表 (稍後會將資料串流至這個空白的結構定義中)。
bq --location={{{project_0.default_region|Region}}} mk \ --time_partitioning_field timestamp \ --schema ride_id:string,point_idx:integer,latitude:float,longitude:float,\ timestamp:timestamp,meter_reading:float,meter_increment:float,ride_status:string,\ passenger_count:integer -t taxirides.realtime

方法 2:BigQuery 控制台使用者介面

注意:若已使用指令列建立資料表,請略過下方步驟。
  1. 前往 Google Cloud 控制台,依序點按「導覽選單」圖示 導覽選單 和「BigQuery」

  2. 畫面出現「歡迎」對話方塊時,點按「完成」

  3. 點按專案 ID 旁的「查看動作」圖示 查看動作,然後點按「建立資料集」

  4. 在「資料集 ID」部分,輸入「taxirides」

  5. 在「資料位置」部分,選取:

{{{project_0.default_region|Region}}}

接著點按「建立資料集」

  1. 在「Explorer」窗格中,點按「展開節點」圖示 展開箭頭,即可看見新建的 taxirides 資料集。

  2. 點按 taxirides 資料集旁邊的「查看動作」圖示 查看動作,然後點按「開啟」

  3. 點按「建立資料表」

  4. 在「資料表」部分輸入「realtime」

  5. 在「結構定義」部分點按「以文字形式編輯」,然後貼上下列內容:

ride_id:string, point_idx:integer, latitude:float, longitude:float, timestamp:timestamp, meter_reading:float, meter_increment:float, ride_status:string, passenger_count:integer
  1. 在「分區與叢集設定」部分,選取「時間戳記」

  2. 點按「建立資料表」

工作 2:複製必要的實驗室構件

在這項工作中,您需要將必要檔案移至專案中。

Cloud Storage 可讓您在世界各地隨時儲存及擷取大小不限的資料。這項服務有多種用途,包括提供網站內容、儲存資料供封存和災難復原之用,或是透過直接下載的方式,將大量資料物件發布給使用者。

系統已在您啟動實驗室時順便建立了 Cloud Storage bucket。

  1. 在「Cloud Shell」Cloud Shell 圖示 中執行下列指令,移動 Dataflow 工作需要的檔案:
gcloud storage cp gs://cloud-training/bdml/taxisrcdata/schema.json gs://{{{project_0.project_id|Project_ID}}}-bucket/tmp/schema.json gcloud storage cp gs://cloud-training/bdml/taxisrcdata/transform.js gs://{{{project_0.project_id|Project_ID}}}-bucket/tmp/transform.js gcloud storage cp gs://cloud-training/bdml/taxisrcdata/rt_taxidata.csv gs://{{{project_0.project_id|Project_ID}}}-bucket/tmp/rt_taxidata.csv

工作 3:設定 Dataflow pipeline

在這項工作中,您會設定串流資料 pipeline,用來讀取 Cloud Storage bucket 中的檔案,並將資料寫入 BigQuery。

Dataflow 是一項可執行資料分析作業的無伺服器服務。

重新啟動連至 Dataflow API 的連線:

  1. 在 Cloud Shell 中執行下列指令,確保專案已確實啟用 Dataflow API。
gcloud services disable dataflow.googleapis.com gcloud services enable dataflow.googleapis.com

建立新的串流 pipeline:

  1. 在 Cloud 控制台的導覽選單 (導覽選單),依序點選「查看所有產品」>「Analytics」>「Dataflow」

  2. 點選頂端選單列中的「依據範本建立工作」

  3. 在 Dataflow 工作的「工作名稱」部分,輸入「streaming-taxi-pipeline」

  4. 在「區域端點」部分,選取:

{{{project_0.default_region|Region}}}
  1. 在「Dataflow 範本」部分,選取「Process Data Continuously (stream)」下方的「Cloud Storage Text to BigQuery (Stream)」範本
注意:請務必選取與下列參數相符的範本選項。
  1. 在「Cloud Storage Input File(s)」部分,貼上或輸入下列內容:
{{{project_0.project_id|Project_ID}}}-bucket/tmp/rt_taxidata.csv
  1. 在「Cloud Storage location of your BigQuery schema file, described as a JSON」部分,貼上或輸入下列內容:
{{{project_0.project_id|Project_ID}}}-bucket/tmp/schema.json
  1. 在「BigQuery Output table」部分,貼上或輸入下列內容:
{{{project_0.project_id|Project_ID}}}:taxirides.realtime
  1. 在「Temporary directory for BigQuery loading process」部分,貼上或輸入下列內容:
{{{project_0.project_id|Project_ID}}}-bucket/tmp
  1. 點選「必要參數」

  2. 在用來寫入暫存檔案的「臨時位置」部分,貼上或輸入下列內容:

{{{project_0.project_id|Project_ID}}}-bucket/tmp
  1. 在「Cloud Storage 中的 JavaScript UDF 路徑」部分,貼上或輸入下列內容:
{{{project_0.project_id|Project_ID}}}-bucket/tmp/transform.js
  1. 在「JavaScript UDF name」部分,貼上或輸入下列內容:
transform
  1. 在「工作站數量上限」部分,輸入 2

  2. 在「工作站數量」部分,輸入「1」

  3. 取消勾選「使用預設機型」

  4. 在「一般用途」下方,選擇下列選項:

系列:E2
機型:e2-medium (2 個 vCPU,4 GB 記憶體)

  1. 點按「執行工作」

Dataflow 範本

新的串流工作已成功啟動!您應該會看見以視覺化方式呈現的資料 pipeline。系統會開始將資料移至 BigQuery,請等待 3 到 5 分鐘。

注意:初次執行 Dataflow 工作時若失敗,請以不同工作名稱重新建立新的工作範本,再重新執行工作。

工作 4:使用 BigQuery 分析計程車資料

在這項工作中,您將在串流期間分析資料。

  1. 在 Google Cloud 控制台中,依序點按「導覽選單」圖示 導覽選單 和「BigQuery」

  2. 畫面顯示「歡迎」對話方塊時,點按「完成」

  3. 在「查詢編輯器」中輸入下列內容,然後點按「執行」

SELECT * FROM taxirides.realtime LIMIT 10 注意:如果沒有傳回任何記錄,請稍候一分鐘再重新執行上述查詢。Dataflow 可能需要 3 到 5 分鐘來設定串流。

輸出內容應如下所示: 查詢輸出的 BigQuery 範例

工作 5:匯總串流資料來製作報表

在這項工作中,您需要計算匯總後的串流資料以製作報表。

  1. 在「查詢編輯器」中,清除目前的查詢內容。

  2. 複製及貼上下列查詢,然後點按「執行」

WITH streaming_data AS ( SELECT timestamp, TIMESTAMP_TRUNC(timestamp, HOUR, 'UTC') AS hour, TIMESTAMP_TRUNC(timestamp, MINUTE, 'UTC') AS minute, TIMESTAMP_TRUNC(timestamp, SECOND, 'UTC') AS second, ride_id, latitude, longitude, meter_reading, ride_status, passenger_count FROM taxirides.realtime ORDER BY timestamp DESC LIMIT 1000 ) # calculate aggregations on stream for reporting: SELECT ROW_NUMBER() OVER() AS dashboard_sort, minute, COUNT(DISTINCT ride_id) AS total_rides, SUM(meter_reading) AS total_revenue, SUM(passenger_count) AS total_passengers FROM streaming_data GROUP BY minute, timestamp 注意:請先確認 Dataflow 已在 BigQuery 中登錄資料,再繼續進行下一項工作。

系統會針對每筆計程車下車資料,傳回按分鐘細分的重要指標。

  1. 依序點按「儲存」和「儲存查詢」

  2. 在「儲存查詢」對話方塊的「名稱」欄位,輸入「My Saved Query」

  3. 確認「區域」部分列出的區域與 Qwiklabs 實驗室相符。

  4. 點選「儲存」

工作 6:停止 Dataflow 工作

在這項工作中,您需要停止 Dataflow 工作,以釋出資源供專案使用。

  1. 在 Cloud 控制台的導覽選單 (導覽選單),依序點選「查看所有產品」>「Analytics」>「Dataflow」

  2. 點選「streaming-taxi-pipeline」或新工作的名稱。

  3. 點按「停止」,然後依序選取「取消」和「停止工作」

工作 7:建立即時資訊主頁

在這項工作中,您將建立即時資訊主頁來呈現資料圖表。

  1. 在 Google Cloud 控制台中,依序點按「導覽選單」圖示 導覽選單 和「BigQuery」

  2. 在「Explorer」窗格,展開「專案 ID」

  3. 展開「查詢」,然後點選「My Saved Query」

查詢編輯器會載入該項查詢。

  1. 點選「執行」

  2. 在「查詢結果」部分,依序點選「開啟方式」>「Looker Studio」

    Looker Studio 會隨即開啟,這時請點按「開始使用」

  3. 在「Looker Studio」視窗中,點按長條圖。

長條圖

「圖表」窗格會隨即顯示。

  1. 點按「新增圖表」,然後選取「組合圖」

    組合圖

  2. 在「設定」窗格的「Data Range Dimension」部分,將滑鼠游標懸停在「minute (Date)」上,然後點按「X」圖示移除該維度。

  3. 在「資料」窗格中點按「dashboard_sort」,然後將其依序拖曳至「設定」>「Data Range Dimension」>「新增維度」

  4. 在「設定」窗格的「維度」部分,點按「分鐘」並選取「dashboard_sort」

  5. 在「設定」窗格的「指標」部分,點按「dashboard_sort」並選取「total_rides」

  6. 在「設定」窗格的「指標」部分,點按「Record Count」並選取「total_passengers」

  7. 在「設定」窗格的「指標」部分,點按「新增指標」並選取「total_revenue」

  8. 在「設定」窗格的「排序」部分,點按「total_rides」並選取「dashboard_sort」

  9. 在「設定」窗格的「排序」部分,點按「遞增」

產生的圖表應與下方類似:

範例圖表

注意:Looker Studio 目前不支援將時間戳記單位設為分鐘,因此製作資料圖表時,我們需要自行建立「dashboard_sort」維度。
  1. 確定資訊主頁符合需求之後,點選「儲存並分享」來儲存這個資料來源。

  2. 系統提示您完成帳戶設定時,請輸入國家/地區和公司詳細資料,並同意條款及細則,然後點選「繼續」

  3. 系統提示您選取想要接收的最新內容時,所有選項都選取「否」,然後點選「繼續」

  4. 如果出現「先查看資料存取權再儲存」提示視窗,請點按「確認並儲存」

  5. 系統提示您選取帳戶時,請選取自己的學生帳戶

  6. 每當有人查看這個資訊主頁時,資料就會根據近期交易更新。您可以依序點按「更多選項」圖示 更多選項 和「重新整理資料」來試試看。

工作 8:建立時間序列資料主頁

在這項工作,您會建立時序圖。

  1. 點選這個 Looker Studio 連結,在新的瀏覽器分頁開啟 Looker Studio。

  2. 在「報表」頁面的「使用範本」部分,點按「[+] 空白報表」範本。

  3. 新的空白報表會隨即開啟,並顯示「將資料新增至報表」視窗。

  4. 在「Google 連接器」清單中,選取「BigQuery」圖塊。

  5. 點按「自訂查詢」並選取所需的專案 ID,ID 格式應如下所示:qwiklabs-gcp-xxxxxxx

  6. 在「輸入自訂查詢」部分貼上下列查詢:

SELECT * FROM taxirides.realtime WHERE ride_status='enroute'
  1. 依序點按「新增」和「加入報表」

    新的未命名報表會隨即顯示。畫面最多可能需要一分鐘才會重新整理完畢。

建立時序圖

  1. 在「資料」窗格中,依序點按「新增欄位」和「新增計算結果欄位」

  2. 點按左側角落的「所有欄位」

  3. 在「時間戳記」欄位中,依序選取「日期和時間」和「西元年月日時分 (YYYYMMDDhhmm)」,變更時間戳記的類型。

  4. 在變更時間戳記對話方塊中,依序點按「繼續」和「完成」

  5. 點按頂端選單中的「新增圖表」

  6. 選擇「時序圖」

    時序圖

  7. 將圖表移至畫面左下角的空白處。

  8. 在「設定」窗格的「維度」部分,點按「timestamp (Date)」,然後選取「時間戳記」

  9. 在「設定」窗格的「維度」部分,點選「時間戳記」,然後選取「日曆」日曆

  10. 在「資料類型」部分,依序選取「日期和時間」和「日期小時分」

  11. 點選對話方塊外的任一處,藉此關閉對話方塊。這個步驟中不需新增名稱。

  12. 在「設定」窗格的「指標」部分,點按「Record Count」並選取「meter reading」

恭喜!

在本實驗室中,您成功使用 Dataflow pipeline 將資料串流至 BigQuery。

關閉研究室

如果您已完成研究室,請按一下「End Lab」(關閉研究室)。Google Cloud Skills Boost 會移除您使用的資源,並清除所用帳戶。

您可以針對研究室的使用體驗評分。請選取合適的星級評等並提供意見,然後按一下「Submit」(提交)

星級評等代表您的滿意程度:

  • 1 星 = 非常不滿意
  • 2 星 = 不滿意
  • 3 星 = 普通
  • 4 星 = 滿意
  • 5 星 = 非常滿意

如果不想提供意見回饋,您可以直接關閉對話方塊。

如有任何想法、建議或指教,請透過「Support」(支援) 分頁提交。

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

准备工作

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

使用无痕浏览模式

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

登录控制台

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

此内容目前不可用

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

太好了!

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

一次一个实验

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

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

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