共用方式為


使用作業模擬最佳化查詢

改善串流分析 (ASA) 作業效能的其中一個方法,是在查詢中套用平行處理原則。 本文示範如何使用 Azure 入口網站中的作業模擬和 Visual Studio Code (VS Code) 來評估串流分析作業的查詢平行處理原則。 您將了解如何以不同數目的串流單位將查詢執行視覺化,並根據編輯建議改善查詢平行處理原則。

什麼是平行查詢?

查詢平行處理原則會建立多個程序 (或串流節點) 並同時執行,來分散工作負載。 它可大幅縮短查詢的整體執行時間,因此所需的串流時數較少。

若要讓作業平行,所有輸入、輸出和查詢步驟,都必須對應儲存並使用相同的分割區索引鍵。 查詢邏輯資料分割是由用於彙總的索引鍵 (GROUP BY) 所決定。

如果您想要深入了解查詢平行處理,請參閱在 Azure 串流分析中運用查詢平行處理

在 VS Code 中使用作業模擬

作業模擬功能會模擬作業在 Azure 中執行拓撲的方式。 在本教學課程中,您將了解如何根據編輯建議來改善查詢效能,並讓查詢以平行方式執行。 例如,我們使用非平行作業,會從事件中樞取得輸入資料,並將結果傳送至另一個事件中樞。

先決條件:

  • 適用於 VS Code 的 ASA Tools 延伸模組。 如果您尚未安裝,請遵循本指南進行安裝。
  • 設定串流分析作業的即時輸入和即時輸出。
  • 您必須在查詢中包含即時輸入和輸出。

注意

作業模擬無法模擬本機輸入和輸出的作業執行拓撲。 模擬期間不會將資料傳送至輸出目的地。

  1. 在 VS Code 中開啟 ASA 專案。 移至查詢檔案 *.asaql,然後選取 [模擬作業] 以啟動作業模擬。

    Screenshot of the VS Code opening job diagram simulator in query file.

  2. 在 [圖表] 索引標籤下方,它會顯示配置給作業的串流節點數目,以及每個串流節點中的資料分割數目。 下列螢幕擷取畫面是節點之間資料流動的非平行作業範例。

    Screenshot of the VS Code using job diagram simulator and showing job topology.

  3. 由於此查詢不是平行的,因此您可以選取 [增強功能] 索引標籤,以檢視改善查詢的建議。

    Screenshot of the VS Code using job diagram simulator and showing the query edit suggestions.

  4. 在增強功能清單中選取查詢步驟,您會看到對應的行已醒目提示,而您可以根據建議編輯查詢。

    Screenshot of the VS Code using job diagram simulator and highlighting the query step.

    注意

    這些是改善查詢平行處理原則的編輯建議。 不過,如果您在所有分割區都使用了彙總函式,則平行查詢可能不適用於您的案例。

  5. 在此範例中,您會將 PartitionId 新增到第 22 行,然後儲存您的變更。 接著,您可以使用 [重新整理模擬] 來取得新的圖表。

    Screenshot that shows the refresh diagram after updating query.

  6. 您也可以調整串流單位,促使系統以不同的 SU 配置來串流節點。 它可讓您了解處理工作負載所需的 SU 數目。

    Screenshot of the VS Code using SU adjuster.

在 Azure 入口網站中使用作業模擬

  1. 移至 Azure 入口網站中的查詢編輯器,然後選取底部窗格中的 [作業模擬]。 它會根據查詢和預先定義的串流單位,模擬執行拓撲的作業。 A screenshot shows opening job simulation in the portal.
  2. 選取 [增強功能] 以檢視改善查詢平行處理原則的建議。 A screenshot shows open job simulation enhancements in the portal.
  3. 調整串流單位,以查看處理工作負載所需的 SU 數目。 A screenshot showing how to adjust su in the portal.

處理器層級圖表

調整串流單位以模擬作業拓撲之後,您可以展開任何串流節點,觀察資料在處理器層級的處理方式。

A screenshot in gif format showing the processor level diagram of the simulator.

處理器層級圖表可讓您:

  • 觀察如何在每個串流節點上配置和處理輸入分割區。
  • 了解每個運算處理器的時間移位為何。
  • 提供輸入和輸出處理器是否平行對應儲存的資訊。

若要使用查詢步驟對應處理器,請在圖表上按兩下以選取。 這項功能可協助您找出執行彙總的查詢步驟。

A screenshot shows the job simulation mapping feature in VS Code.

增強功能建議

以下是增強功能的說明:

類型 意義
不支援自訂分割區 將輸入 'xxx' 分割區索引鍵變更為 'xxx'。
分割區數目不相符 輸入和輸出的分割區數目必須相同。
分割區索引鍵不相符 輸入、輸出和每個查詢步驟都必須使用相同的分割區索引鍵。
輸入分割區數目不相符 所有輸入的分割區數目都必須相同。
輸入分割區索引鍵不相符 所有輸入都必須使用相同的分割區索引鍵。
低相容性層級 升級 JobConfig.json 檔案上的 CompatibilityLevel
找不到輸出分割區索引鍵 您必須針對輸出使用指定的分割區索引鍵。
不支援自訂分割區 您只能使用預先定義的分割區索引鍵。
未使用分割區的查詢步驟 您的查詢未使用任何 PARTITION BY 子句。

下一步

如果您想要深入了解查詢平行處理和作業圖表,請參閱下列教學課程: