1. 簡介
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。
- 前往 BigQuery 網頁版 UI。
- 切換到 Cloud Dataflow 引擎。
- 按一下 [More] (更多) 下拉式選單,然後選取 [Query settings] (查詢設定)。
- 在「Query settings」(查詢設定) 選單中,選取「Dataflow Engine」。
- 如果未啟用 Dataflow 和 Data Catalog API,系統會顯示提示訊息,請按一下「Enable APIs」(啟用 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 做為輸出類型。
- 選取資料集 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 工作及其狀態。
Cloud 控制台中的 Dataflow 工作清單,顯示處於「執行中」、「失敗」和「成功」狀態的工作。
工作可能處於以下狀態:
- —:監控 UI 尚未從 Dataflow 服務接收到狀態。
- Running (執行中):工作目前正在執行中。
- Not started (尚未開始):工作已建立完成,但系統需要一些時間準備才能啟動工作。
- Queued (已排入佇列):FlexRS 工作已排入佇列。
- Cancelling (取消中)...:系統正在取消工作。
- 「Canceled」(已取消):工作已由使用者取消。
- Draining (排除中)...:系統正在排除工作。
- 「Drained」(已排除):使用者已對工作進行排除作業。
- 更新中...:工作正在更新。
- Updated (已更新):使用者已更新工作。
- Succeeded (成功):工作已順利完成。
- 「Failed」(失敗):工作無法完成。
使用「dfsql」尋找工作並點選工作名稱,
「工作詳細資料」頁面,包含下列內容:
- 工作圖表:管道的視覺化呈現方式
- 工作指標:與工作執行相關的指標
- 工作資訊面板:管道相關描述性資訊
- Dataflow 服務在工作層級產生的記錄
- 工作站記錄:Dataflow 服務在工作站層級產生的記錄
- 工作錯誤報告:顯示所選時間範圍內發生錯誤的圖表,以及所有已記錄的錯誤計數
- 時間選取器:可讓您調整指標時間範圍
在「工作詳細資料」頁面中,您可以使用「工作圖表」和「工作指標」分頁切換工作檢視畫面。
- 按一下「工作指標」分頁標籤,即可探索圖表
6. 停止 Dataflow SQL 工作
如要停止 Dataflow SQL 工作,請使用取消指令。不支援透過「排除」功能停止 Dataflow SQL 工作。