分享方式:


對應資料流的效能和調整指南

適用於: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 分鐘。 若是循序作業,可以啟用存留時間值來縮短啟動時間。 如需詳細資訊,請參閱整合執行階段效能中的存留時間一節。

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

在您識別出資料流程的瓶頸之後,請使用下面的最佳化策略來改善效能。

測試資料流程邏輯

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

最佳化索引標籤

[最佳化] 索引標籤包含可設定 Spark 叢集資料分割配置的設定。 此索引標籤存在於每個資料流程轉換,以及指定您是否想要在轉換完成「之後」對資料進行資料分割。 調整資料分割可讓您控制資料在計算節點上的散發和資料位置最佳化,這可能會對整體資料流程效能產生正面和負面影響。

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

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

若要變更任何轉換上的資料分割,則請選取 [最佳化] 索引標籤,然後選取 [設定資料分割] 選項按鈕。 系統會向您呈現一系列資料分割選項。 最佳資料分割方法會根據資料量、候選索引鍵、Null 值和多重性而不同。

重要

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

下列資料分割選項適用於每次轉換:

循環配置資源

循環配置資源會將資料平均分散到各個分割區。 當您沒有良好的索引鍵候選可實作穩固且智慧的資料分割策略時,請使用循環配置資源。 您可以設定實體分割區的數目。

雜湊

此服務會產生資料行雜湊以產生統一的分割區,這樣具有類似值的資料列就會落在相同的分割區中。 當您使用 [雜湊] 選項時,請測試潛在的分割區扭曲。 您可以設定實體分割區的數目。

動態範圍

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

固定範圍

建置可針對已資料分割資料行內的值提供固定範圍的運算式。 若要避免分割區扭曲,您應該在使用此選項之前充分了解資料。 針對運算式所輸入的值用作資料分割函數的一部分。 您可以設定實體分割區的數目。

機碼

如果您已充分了解資料的多重性,則索引鍵資料分割可能是不錯的策略。 索引鍵資料分割會針對資料行中的每個唯一值建立分割區。 您無法設定分割區數目,因為該數目是以資料中的唯一值作為基礎。

提示

手動設定資料分割配置會重新換用資料,並可以抵銷 Spark 最佳化工具的優點。 最佳做法是除非您需要,否則請不要手動設定資料分割。

記錄層級

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

Logging level

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