使用 Google Cloud Dataflow 執行第一個 SQL 陳述式

1. 簡介

Cloud-Dataflow.png

Google Cloud Dataflow

上次更新日期:2020 年 5 月 26 日

什麼是 Dataflow?

Dataflow 是可執行各種資料處理模式的代管服務。此網站上的說明文件說明如何使用 Dataflow 部署批次和串流資料處理管道,包括使用服務功能的指示。

Apache Beam SDK 是開放原始碼的程式設計模型,可讓您開發批次和串流管道。您可以使用 Apache Beam 程式建立管道,然後在 Dataflow 服務上執行這些管道。Apache Beam 說明文件針對 Apache Beam 程式設計模型、SDK 和其他執行器提供深入的概念資訊和參考資料。

快速進行串流資料分析

Dataflow 可讓您快速執行簡化的串流資料管道開發作業,同時縮短資料延遲時間。

簡化營運和管理作業

Dataflow 不需依靠伺服器,因此可免除資料工程工作負載的營運負擔,讓團隊專注於程式設計,不必費心管理伺服器叢集。

降低總持有成本

Dataflow 同時提供自動調度資源功能和成本效益最佳化的批次處理功能,可提供近乎無限的容量,讓您管理季節性與激增的工作負載,而不必擔心超支。

主要特色

自動管理資源及動態重新平衡工作

Dataflow 可自動佈建及管理處理資源,盡量縮短延遲時間和增加使用率,讓您不必手動啟動或保留執行個體。另外,工作分區也會自動化及最佳化,以動態地重新平衡延遲的工作。不必再去找「快速鍵」或預先處理輸入資料

水平自動調度資源

自動水平調度工作站的資源,以更優異的整體性價比達到最佳處理量。

針對批次處理提供彈性的資源排程定價

針對可彈性安排工作時間的處理作業 (例如整夜處理的工作),您可以選擇使用彈性資源排程 (FlexRS),藉此以較低的價格執行批次處理作業。系統會將這些彈性工作排入佇列中,並在六小時內擷取出來,進入執行階段。

活動詳情

在本程式碼研究室中,您將透過 Dataflow SQL UI 提交 SQL 陳述式,開始使用 Dataflow SQL。接下來,您將透過 Dataflow 監控 UI 探索執行中的管道。

課程內容

  • 如何在 Dataflow SQL UI 中將 SQL 陳述式提交為 Dataflow 工作。
  • 如何前往 Dataflow 管道。
  • 探索 SQL 陳述式建立的 Dataflow 圖表。
  • 探索圖表提供的監控資訊。

軟硬體需求

  • 已啟用帳單功能的 Google Cloud Platform 專案。
  • 已啟用 Google Cloud Dataflow 和 Google Cloud PubSub。

2. 開始設定

確認您已啟用 Dataflow API 和 Cloud Pub/Sub API。您可以查看 API 的「服務」頁面。

3. 存取 Dataflow SQL UI

Dataflow SQL UI 是 BigQuery 網頁版 UI 設定,可用來建立 Dataflow SQL 工作。您可以透過 BigQuery 網頁版 UI 存取 Dataflow SQL UI。

  1. 前往 BigQuery 網頁版 UI。

  1. 切換到 Cloud Dataflow 引擎。
  • 按一下 [More] (更多) 下拉式選單,然後選取 [Query settings] (查詢設定)

BigQuery 網頁版 UI 中的「更多」下拉式選單,已選取「查詢設定」選項

  • 在「Query settings」(查詢設定) 選單中,選取「Dataflow Engine」
  • 如果未啟用 Dataflow 和 Data Catalog API,系統會顯示提示訊息,請按一下「Enable APIs」(啟用 API)

顯示「啟用 API」提示的「查詢設定」選單

  • 按一下「儲存」「查詢設定」選單,已選取 Dataflow 引擎圓形按鈕,並啟用 API

您也可以透過 Dataflow 監控介面存取 Dataflow SQL UI。

  • 前往 Dataflow 監控介面。

  • 按一下「透過 SQL 建立工作」

4. 使用 SQL 查詢執行 Dataflow 工作

編寫 Dataflow SQL 查詢

Dataflow SQL 查詢會使用 Dataflow SQL 查詢語法。Dataflow SQL 查詢語法與 BigQuery 標準 SQL 類似。您可以使用 Dataflow SQL 串流擴充功能,匯總 Pub/Sub 等持續更新 Dataflow 來源的資料。舉例來說,下列查詢每分鐘會計算計程車服務 Pub/Sub 資料串流中的乘客人數:

SELECT
  TUMBLE_START('INTERVAL 1 MINUTE') as period_start,
  SUM(passenger_count) AS pickup_count
FROM pubsub.topic.`pubsub-public-data`.`taxirides-realtime`
WHERE
  ride_status = "pickup"
GROUP BY
  TUMBLE(event_timestamp, 'INTERVAL 1 MINUTE')

執行 Dataflow SQL 查詢

執行 Dataflow SQL 查詢時,Dataflow 會將查詢轉換成 Apache Beam 管道並執行。

您可以使用 Cloud 控制台或 gcloud 指令列工具執行 Dataflow SQL 查詢。

如要執行 Dataflow SQL 查詢,請使用 Dataflow SQL UI。

  • 前往 Dataflow SQL UI。
  • 在查詢編輯器中輸入上方的 Dataflow SQL 查詢。
  • 點選「建立 Cloud Dataflow 工作」來開啟工作選項面板。
  • (選用) 按一下「顯示選用參數」並瀏覽清單。
  • 在面板的「Destination」(目的地) 部分中,選取 BigQuery 做為輸出類型。

1155e94529ff58fe.png

  • 選取資料集 ID,並建立「passengers_per_min」資料表
  • 按一下「建立」。

如要進一步瞭解如何查詢資料及寫入 Dataflow SQL 查詢結果,請參閱「使用 Dataflow SQL」一文。

5. 在 Dataflow Monitoring UI 中探索工作

使用 Dataflow 代管服務執行管道時,您可以透過 Dataflow 的網頁式監控使用者介面來查看該工作和任何其他工作。查看 Dataflow 工作,以及與這些工作互動。

您可以透過 Google Cloud 控制台存取 Dataflow 監控介面。監控介面會顯示以下項目:

  • 列出所有正在執行的 Dataflow 工作,以及過去 30 天內執行過的工作。
  • 各個管道的表示圖。
  • 工作狀態、執行狀況和 SDK 版本的詳細資料。
  • 資訊連結,介紹執行管道的 Google Cloud 服務,例如 Compute Engine 和 Cloud Storage。
  • 工作期間發生的任何錯誤或警告。

您可以在 Dataflow 監控介面中查看工作監控圖表。這些圖表會顯示管道工作期間的指標,並包含以下資訊:

  • 步驟層級的瀏覽權限,有助於找出哪些步驟可能會導致管道延遲。
  • 可能呈現異常行為的統計資訊。
  • 可協助識別來源和接收器的 I/O 指標。

存取 Dataflow 監控介面

如要存取 Dataflow 監控介面,請按照下列步驟操作:

  • 前往 Cloud 控制台:

  • 選取 Google Cloud 專案。
  • 按一下左上角的選單。
  • 前往「大數據」部分,然後按一下「Dataflow」。

畫面上會列出 Dataflow 工作及其狀態。

58f6402cc923d6bb.png

Cloud 控制台中的 Dataflow 工作清單,顯示處於「執行中」、「失敗」和「成功」狀態的工作。

工作可能處於以下狀態:

  • :監控 UI 尚未從 Dataflow 服務接收到狀態。
  • Running (執行中):工作目前正在執行中。
  • Not started (尚未開始):工作已建立完成,但系統需要一些時間準備才能啟動工作。
  • Queued (已排入佇列):FlexRS 工作已排入佇列。
  • Cancelling (取消中)...:系統正在取消工作。
  • 「Canceled」(已取消):工作已由使用者取消。
  • Draining (排除中)...:系統正在排除工作。
  • 「Drained」(已排除):使用者已對工作進行排除作業。
  • 更新中...:工作正在更新
  • Updated (已更新):使用者已更新工作。
  • Succeeded (成功):工作已順利完成。
  • 「Failed」(失敗):工作無法完成。

使用「dfsql」尋找工作並點選工作名稱,

e3bce9b1929564c9.png

「工作詳細資料」頁面,包含下列內容:

  • 工作圖表:管道的視覺化呈現方式
  • 工作指標:與工作執行相關的指標
  • 工作資訊面板:管道相關描述性資訊
  • Dataflow 服務在工作層級產生的記錄
  • 工作站記錄:Dataflow 服務在工作站層級產生的記錄
  • 工作錯誤報告:顯示所選時間範圍內發生錯誤的圖表,以及所有已記錄的錯誤計數
  • 時間選取器:可讓您調整指標時間範圍

在「工作詳細資料」頁面中,您可以使用「工作圖表」和「工作指標」分頁切換工作檢視畫面。

  • 按一下「工作指標」分頁標籤,即可探索圖表

7076f8a8911066ab.png

6. 停止 Dataflow SQL 工作

如要停止 Dataflow SQL 工作,請使用取消指令。不支援透過「排除」功能停止 Dataflow SQL 工作。

1229697a873e1cf9.png