對應資料流程效能和微調指南

適用于: Azure Data Factory Azure Synapse Analytics

提示

試用 Microsoft Fabric 中的 Data Factory,這是適用于企業的單一分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告等所有專案。 瞭解如何 免費啟動新的試用版

Azure Data Factory 和 Synapse 管線中的對應資料流提供無程式碼介面,可讓您大規模地設計及執行資料轉換。 如果您不熟悉對應資料流,請參閱對應資料流概觀。 本文強調各種調整和優化資料流程的方式,使其符合效能基準。

觀看下列影片,以查看使用資料流程轉換資料的一些範例計時。

監視資料流程效能

使用偵錯模式驗證轉換邏輯之後,請以管線中的活動身分執行資料流程端對端。 資料流程會使用 執行資料流程活動 在管線中運作。 相較于顯示轉換邏輯的詳細執行計畫和效能設定檔的其他活動,資料流程活動具有獨特的監視體驗。 若要檢視資料流程的詳細監視資訊,請在管線的活動執行輸出中選取眼鏡圖示。 如需詳細資訊,請參閱 監視對應資料流程

Data Flow Monitor

當您監視資料流程效能時,有四個可能的瓶頸需要注意:

  • 叢集啟動時間
  • 從來源讀取
  • 轉換時間
  • 寫入接收

Data Flow Monitoring

叢集啟動時間是啟動 Apache Spark 叢集所需的時間。 此值位於監視畫面右上角。 資料流程會在 Just-In-Time 模型上執行,其中每個作業都會使用隔離的叢集。 此啟動時間通常需要 3-5 分鐘。 針對循序作業,可以藉由啟用存留時間來縮短啟動時間。 如需詳細資訊,請參閱 Integration Runtime 效能 中的 生存 時間一節。

資料流程會利用 Spark 優化器,在「階段」中重新排序並執行商務邏輯,以儘快執行。 針對資料流程寫入的每個接收,監視輸出會列出每個轉換階段的持續時間,以及將資料寫入接收所需的時間。 最大的時間可能是資料流程的瓶頸。 如果採用最大來源的轉換階段包含來源,您可能想要進一步優化讀取時間。 如果轉換需要很長的時間,您可能需要重新分割或增加整合執行時間的大小。 如果接收處理時間很大,您可能需要相應增加資料庫,或確認您未輸出到單一檔案。

一旦您識別出資料流程的瓶頸,請使用下列優化策略來改善效能。

測試資料流程邏輯

當您從 UI 設計和測試資料流程時,偵錯模式可讓您以互動方式測試即時 Spark 叢集,讓您預覽資料並執行資料流程,而不需要等待叢集熱身。 如需詳細資訊,請參閱 偵錯模式

優化索引標籤

[優化] 索引 標籤包含設定 Spark 叢集資料分割配置的設定。 此索引標籤存在於資料流程的每個轉換中,並指定您是否要在轉換完成後重新分割資料 。 調整資料分割可讓您控制資料在計算節點和資料位置優化之間的分佈,這些優化會對整體資料流程效能產生正面和負面影響。

Screenshot shows the Optimize tab, which includes Partition option, Partition type, and Number of partitions.

根據預設, 會選取 [使用目前的資料分割 ],指示服務保留轉換的目前輸出分割。 當重新分割資料需要時間時, 建議在大部分情況下使用目前的資料分割 。 您可能想要重新分割資料的案例包括匯總和聯結之後,這些匯總和聯結會大幅扭曲您的資料,或在 SQL 資料庫上使用來來源資料分割時。

若要變更任何轉換上的資料分割,請選取 [ 優化 ] 索引標籤,然後選取 [ 設定資料分割 ] 選項按鈕。 您會看到一系列資料分割選項。 資料分割的最佳方法會根據您的資料磁片區、候選索引鍵、Null 值和基數而有所不同。

重要

單一分割區會將所有分散式資料合併成單一資料分割。 這是非常緩慢的作業,也會大幅影響所有下游轉換和寫入。 除非有明確的商業理由使用它,否則強烈建議您不要使用此選項。

每個轉換都可以使用下列資料分割選項:

循環配置資源

迴圈配置資源會將資料平均分散到分割區。 當您沒有良好的關鍵候選項目來實作穩固的智慧資料分割策略時,請使用迴圈配置資源。 您可以設定實體分割區的數目。

雜湊

服務會產生資料行的雜湊,以產生統一資料分割,讓具有相同值的資料列落在相同的分割區中。 當您使用 Hash 選項時,請測試可能的分割區扭曲。 您可以設定實體分割區的數目。

動態範圍

動態範圍會根據您提供的資料行或運算式使用 Spark 動態範圍。 您可以設定實體分割區的數目。

固定範圍

建置運算式,為分割的資料行內的值提供固定範圍。 若要避免分割區扭曲,您應該先充分瞭解資料,再使用此選項。 您為運算式輸入的值會當做分割函數的一部分使用。 您可以設定實體分割區的數目。

索引鍵

如果您對資料的基數有很好的瞭解,索引鍵資料分割可能是一個很好的策略。 索引鍵分割會為數據行中的每個唯一值建立資料分割。 您無法設定分割區數目,因為此數位是以資料中的唯一值為基礎。

提示

手動設定資料分割配置會重新洗牌資料,並可以抵消 Spark 優化器的優點。 最佳做法是除非您需要,否則不要手動設定資料分割。

記錄層級

如果您不需要執行資料流程活動的每個管線,即可完整記錄所有詳細資訊的遙測記錄,您可以選擇性地將記錄層級設定為 「基本」或「無」。 以「詳細資訊」模式執行資料流程時,您會要求服務在資料轉換期間在每個個別的資料分割層級完整記錄活動。 這可以是昂貴的作業,因此只有在疑難排解時才能啟用詳細資訊,才能改善整體資料流程和管線效能。 「基本」模式只會記錄轉換持續時間,而 「None」 只會提供持續時間的摘要。

Logging level

請參閱與效能相關的其他資料流程文章: