將來源最佳化

針對 Azure SQL Database 以外的每個來源,建議您保留 [使用目前的資料分割] 作為選取的值。 當您要從所有其他來源系統進行讀取時,資料流程會根據資料的大小來自動平均分割資料。 系統會針對大約每 128 MB 的資料建立一個新的分割區。 隨著資料大小增加,分割區數目也會增加。

任何自訂資料分割都會在 Spark 讀取資料「之後」發生,而且會對資料流程效能造成負面影響。 因為會在讀取時平均分割資料,所以除非您先了解資料的圖形和基數,否則不建議這麼做。

注意

讀取速度可能會受限於來源系統的輸送量。

Azure SQL Database 來源

Azure SQL Database 具有具有一種獨特的資料分割選項,稱為「來源」資料分割。 啟用來源資料分割可以在來源系統上啟用平行連線,以從 Azure SQL Database 改善您的讀取時間。 指定分割區數目,以及如何分割您的資料。 選擇具有高基數的資料分割資料行。 您也可以輸入符合來源資料表的資料分割配置的查詢。

提示

對於來源資料分割,SQL Server 的 I/O 是瓶頸。 新增太多分割區可能會讓源資料庫飽和。 使用此選項時,四或五個分割區通常是理想的選擇。

Source partitioning

隔離等級

Azure SQL 來源系統上的讀取隔離等級會影響效能。 選擇 [讀取未認可] 會提供最快的效能,並防止任何資料庫鎖定。 若要深入了解 SQL 隔離等級,請參閱了解隔離等級

使用查詢來讀取

您可以使用資料表或 SQL 查詢,從 Azure SQL Database 讀取。 如果您正在執行 SQL 查詢,則必須先完成查詢,才能開始轉換。 SQL 查詢有助於向下推送作業以加快執行速度,並減少 SELECT、WHERE 和 JOIN 這類陳述式從 SQL Server 讀取的資料量。 在向下推送作業時,您會失去在資料進入資料流程前追蹤資料譜系和效能的能力。

Azure Synapse Analytics 來源

使用 Azure Synapse Analytics 時,來源選項中有一項名為 [啟用暫存] 的設定。 這可讓服務使用 Staging 從 Synapse 進行讀取,而其使用最高效能的大量載入功能 (例如 CETAS 和 COPY 命令) 大幅改善讀取效能。 您需要在資料流程活動設定中指定 Azure Blob 儲存體或 Azure Data Lake Storage gen2 暫存位置,才能啟動 Staging

Enable staging

檔案型來源

Parquet 與分隔符號文字

雖然資料流程支援各種檔案類型,但建議使用 Spark 原生 Parquet 格式,以獲得最佳讀取和寫入時間。

如果您在一組檔案上執行相同的資料流程,建議您從資料夾讀取,使用萬用字元路徑或從檔案清單讀取。 單一資料流程活動執行可以批次處理所有檔案。 如需有關如何設定這些設定的詳細資訊,請參閱 Azure Blob 儲存體連接器文件的〈來源轉換〉一節。

請盡量避免使用 For-Each 活動來執行一組檔案上的資料流程。 這會導致 for-each 的每個反覆運算啟動自己的 Spark 叢集,這通常非必要且成本高昂。

內嵌資料集與共用資料集

ADF 和 Synapse 資料集是處理站和工作區中的共用資源。 不過,當您要讀取大量具有分隔符號文字和 JSON 來源的來源資料夾和檔案時,可以在 [投影] | [結構描述選項] 對話方塊內設定 [使用者投影的結構描述] 選項來改善資料流程檔案探索效能。 此選項會關閉 ADF 的預設結構描述自動探索,並大幅改善檔案探索的效能。 設定此選項之前,請務必匯入投影,讓 ADF 具有現有投影結構描述。 此選項不適用於結構描述漂移。

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