適用於:
Azure Data Factory
Azure Synapse Analytics
提示
Data Factory in Microsoft Fabric 是下一代的 Azure Data Factory,擁有更簡單的架構、內建 AI 及新功能。 如果你是資料整合新手,建議先從 Fabric Data Factory 開始。 現有的 ADF 工作負載可升級至 Fabric,以存取資料科學、即時分析與報告等新能力。
本文將說明你可以在 Azure Data Factory 和 Synapse 管線中運用的文案活動效能優化功能。
使用 UI 設定效能功能
當您在管線編輯器畫布中選擇 Copy activity,並在畫布下方的活動設定區選擇「設定」標籤時,您將看到以下詳細說明的所有效能功能的設定選項。
資料整合單位
資料整合單位是一項量值,代表服務中單一單位的能力 (CPU、記憶體和網路資源配置的組合)。 資料整合單元僅適用於Azure整合執行時,但不適用於自主機整合執行時。
允許複製活動執行的 DIU 介於 4 到 256 之間。 如果未指定,或您在 UI 上選擇 「自動」,服務會根據來源接收組和資料模式,動態套用最佳 DIU 設定。 下表列出不同複製案例中支援的 DIU 範圍和預設行為:
| 複製案例 | 支援的 DIU 範圍 | 由服務決定的預設 DIU |
|---|---|---|
| 在檔案存放區之間 |
-
從單一檔案複製或複製到單一檔案:4 - 從多個檔案複製和複製到多個檔案:4-256,視檔案數目和大小而定 例如,如果您從具有 4 個大型檔案的資料夾複製資料,並選擇保留階層,則最大的有效 DIU 為 16;當您選擇合併檔案時,最大的有效 DIU 為 4。 |
依據檔案的數量和大小,介於 4 到 32 之間 |
| 從檔案存放區到非檔案存放區 |
-
從單一檔案複製:4 - 從多個檔案複製:4-256,視檔案數目和大小而定 例如,如果您從具有 4 個大型檔案的資料夾複製資料,則最大的有效 DIU 為 16。 |
-
複製到 Azure SQL Database 或 Azure Cosmos DB:視接收層級 (DTU/RU) 和來源檔案模式而定,介於 4 到 16 之間 - 使用 PolyBase 或 COPY 陳述式複製到 Azure Synapse Analytics:2 - 其他案例:4 |
| 從非檔案存放區到檔案存放區 |
-
從具有分割選項的資料儲存庫 (包括 Azure Database for PostgreSQL、Azure SQL Database、Azure SQL 受控執行個體、Azure Synapse Analytics、Oracle、Netezza、SQL Server,以及Teradata):寫入資料夾時為 4-256,寫入單一檔案時為 4。 請注意,每個來源資料分割最多可以使用 4 個 DIU。 - 其他案例:4 |
-
從 REST 或 HTTP 複製:1 - 從 Amazon Redshift 複製 (使用 UNLOAD):4 - 其他案例:4 |
| 在非檔案存放區之間 |
-
從具有分割選項的資料儲存庫 (包括 Azure Database for PostgreSQL、Azure SQL Database、Azure SQL 受控執行個體、Azure Synapse Analytics、Oracle、Netezza、SQL Server,以及Teradata):寫入資料夾時為 4-256,寫入單一檔案時為 4。 請注意,每個來源資料分割最多可以使用 4 個 DIU。 - 其他案例:4 |
-
從 REST 或 HTTP 複製:1 - 其他案例:4 |
您可以在複製活動監視檢視或活動輸出中看到供每個複製執行使用的 DIU。 更多資訊請參見複製活動監測。 若要覆寫此預設值,請如下所示指定 dataIntegrationUnits 屬性的值。 根據您的資料模式,複製作業會在執行階段使用的 實際 DIU 數目 等於或小於所設定的值。
您將被收取的費用為使用的 DIU 數量 x 複製持續期間 x 單位價格/DIU-小時。 目前的價格請參閱這裡。 每個訂用帳戶類型可能會套用當地貨幣和個別折扣。
範例:
"activities":[
{
"name": "Sample copy activity",
"type": "Copy",
"inputs": [...],
"outputs": [...],
"typeProperties": {
"source": {
"type": "BlobSource",
},
"sink": {
"type": "AzureDataLakeStoreSink"
},
"dataIntegrationUnits": 128
}
}
]
自架整合執行環境可擴展性
如果您想要達到更高的輸送量,可以擴大或擴增自我裝載 IR:
- 如果在自我代管 IR 節點上的 CPU 和可用的記憶體沒有得到充分利用,但同時執行的作業數量已達到上限時,您應該透過增加節點上可以執行的並行作業數量來進行擴展。 如需指示,請按一下這裡。
- 另一方面,如果自我裝載 IR 節點上的 CPU 偏高,或可用的記憶體不足,可以新增節點來協助擴增跨多個節點的負載。 如需指示,請按一下這裡。
請注意,在下列情境中,單一資料複製活動執行可以利用多個自我裝載 IR 節點:
- 根據檔案的數目和大小,從檔案型存放區複製資料。
- 從啟用分割選項的資料存放區複製資料 (包括 Azure SQL Database、Azure SQL 受控執行個體、Azure Synapse Analytics、Oracle、Netezza、SAP Hana、SAP Open Hub、SAP Table、SQL Server 和 Teradata),視資料分割區數目而定。
平行複製
你可以在複製活動中設定平行複製。這可以透過在複製活動的 JSON 定義中設定 parallelCopies 屬性,或是在使用者介面的複製活動屬性的 Degree of parallelism 頁籤中進行 設定,來指定您希望複製活動使用的平行性。 您可以將此屬性視為複製活動中,平行從來源讀取或寫入至接收資料存放區的執行緒數量上限。
平行複製與資料整合單位或自我裝載 IR 節點互不影響。 它會在所有 DIU 或自我裝載 IR 節點之間一併計算。
在每次複製活動執行時,服務會在預設情況下根據您的來源-接收端組合和資料模式,動態採用最佳的平行化複製設定。
提示
平行複製的預設行為通常會提供最佳輸送量,這是由服務根據您的來源與目的地配對、資料模式、DIU 數量,或自我裝載 IR 的 CPU、記憶體與節點數量自動決定的。 請參閱複製活動效能疑難排解,了解何時調整平行複製。
下表列出平行複製行為:
| 複製案例 | 平行複製行為 |
|---|---|
| 在檔案存放區之間 |
parallelCopies 決定在檔案層次上的平行性。 每個檔案內的區塊化會以自動且透明的方式進行。 它的設計是為指定的資料儲存類型使用最適合的區塊,以平行載入資料。 用於執行階段的實際平行複製複製活動數目不會超過您擁有的檔案數目。 如果複製行為是 mergeFile 並將資料合併至檔案接收器,則複製活動無法利用檔案層級的平行處理能力。 |
| 從檔案存放區到非檔案存放區 | - 當將資料複製到 Azure SQL Database 或 Azure Cosmos DB 時,預設的平行複製也會依匯入層級(DTU/RU 數量)而異。 - 將資料複製到 Azure Table 時,預設平行複製為 4。 |
| 從非檔案存放區到檔案存放區 | - 從啟用分割選項的資料儲存庫(包括 - 在其他案例中,平行複製不會生效。 即使已指定平行處理原則,也不會套用。 |
| 在非檔案存放區之間 | - 當將資料複製到 Azure SQL Database 或 Azure Cosmos DB 時,預設的平行複製也會依匯入層級(DTU/RU 數量)而異。 - 從啟用分割選項的資料儲存庫(包括 - 將資料複製到 Azure Table 時,預設平行複製為 4。 |
若要控制裝載資料存放區之電腦上的負載,或是微調複製效能,您可以覆寫預設值並指定 parallelCopies 屬性的值。 值必須是大於或等於 1 的整數。 在執行階段,為獲得最佳效能,複製活動會使用小於或等於設定的值。
當您為 parallelCopies 屬性指定值時,請將來源和接收資料存放區的負載增加納入考量。 另外,若複製活動由自我託管的整合執行階段提供支援,也請考慮因此增加的負載。 這種負載增加特別容易發生在當您有多個活動時,或者當您執行對相同資料庫的多次併行活動時。 如果您注意到資料存放區或自我託管整合執行階段已無法應付負載,請減少 parallelCopies 值以減輕負載。
範例:
"activities":[
{
"name": "Sample copy activity",
"type": "Copy",
"inputs": [...],
"outputs": [...],
"typeProperties": {
"source": {
"type": "BlobSource",
},
"sink": {
"type": "AzureDataLakeStoreSink"
},
"parallelCopies": 32
}
}
]
分段複製
當你從來源資料儲存庫複製資料到匯資料儲存庫時,你可以選擇使用 Azure Blob 儲存或 Azure Data Lake Storage Gen2 作為臨時暫存儲存。 在下列情況下,階段性部署尤其有用:
- 你想透過 PolyBase 從不同資料庫匯入 Azure Synapse Analytics,從 Snowflake 複製資料,或效能性地從 Amazon Redshift/HDFS 匯入資料。 從以下了解更多詳細資料:
- 由於公司 IT 原則,您不想要在您的防火牆中開啟 80 和 443 以外的連接埠。 例如,當你從本地資料儲存庫複製資料到 Azure SQL Database 或 Azure Synapse Analytics 時,你需要在 Windows 防火牆和企業防火牆的 1433 埠啟用出站 TCP 通訊。 在此情境下,分階段複製可利用自架整合執行時,先透過 HTTP 或 HTTPS 在 443 埠將資料複製到暫存儲存,然後將暫存資料載入 SQL 資料庫或 Azure Synapse Analytics。 在此流程中,您不需要啟用連接埠 1433。
- 有時透過慢速網路連接執行混合式資料移動 (也就是,從內部部署資料存放區複製到雲端資料存放區),需要一段時間。 為了提升效能,您可以使用分段複製來壓縮內部部署資料,以減少移動資料到雲端中的暫存資料存放區所需的時間。 然後,您可以先在暫存存放區中解壓縮資料,再將其載入至目的地資料存放區。
分段複製的運作方式
啟用暫存功能時,首先資料會從來源資料儲存複製到暫存儲存(請自備 Azure Blob 或 Azure Data Lake Storage Gen2)。 接著,會將資料從暫存複製到接收器資料存放區。 複製活動會自動為您管理此兩階段流程,並在資料移動完成後,從暫存儲存體清除暫存資料。
你需要在暫存儲存裝置中授予 Azure Data Factory 刪除權限,這樣在複製活動執行後,暫時資料才能被清理。
當您使用暫存存放區啟動資料移動時,可以指定是否在將資料從來源資料存放區移至暫存存放區之前進行壓縮,以及在將資料從過渡或暫存資料存放區移至接收資料存放區之前進行解壓縮。
目前,您無法在透過不同的 Self-hosted IRs 連線的兩個資料存放區之間複製資料,不論是否使用分段複製。 針對此類案例,您可以設定兩個明確串聯的複製活動,先將資料從來源複製至暫存存放區,再從暫存存放區複製至接收器。
組態
在複製活動中設定 [enableStaging] 設定,指定您是否想要讓資料在載入至目的地資料存放區之前,暫存在儲存體中。 當您將 [enableStaging] 設定為 TRUE 時,請指定下一份資料表所列出的其他屬性。
| 屬性 | 描述 | 預設值 | 必要 |
|---|---|---|---|
| enableStaging | 指定您是否要透過過渡暫存存放區複製資料。 | 假 | 否 |
| 鏈接服務名稱 | 指定 Azure Blob storage 或 Azure Data Lake Storage Gen2 連結服務的名稱,這指的是你用作臨時暫存的儲存實例。 | N/A | 是,當 enableStaging 設為 TRUE |
| 路徑 | 指定您想要存放分段資料的路徑。 如果未提供路徑,服務會建立容器來儲存暫存資料。 | N/A | 否 (若已指定 Snowflake 連接器中的 storageIntegration 則為「是」) |
| 啟用壓縮 | 指定將資料複製到目的地之前,是否應該壓縮資料。 此設定可減少傳輸的資料量。 | 假 | 否 |
注意
如果您在啟用壓縮的情況下使用分段複製,則不支援暫存 Blob 連結服務的服務主體或 MSI 驗證功能。
以下是具有上表所述屬性的複製活動範例定義︰
"activities":[
{
"name": "CopyActivityWithStaging",
"type": "Copy",
"inputs": [...],
"outputs": [...],
"typeProperties": {
"source": {
"type": "OracleSource",
},
"sink": {
"type": "SqlDWSink"
},
"enableStaging": true,
"stagingSettings": {
"linkedServiceName": {
"referenceName": "MyStagingStorage",
"type": "LinkedServiceReference"
},
"path": "stagingcontainer/path"
}
}
}
]
分段複製的計費影響
我們將會根據兩個步驟向您收費:複製持續時間和複製類型。
- 當你在雲端複製中使用暫存(staging)時,也就是將資料從雲端資料儲存複製到另一個雲端資料儲存,這兩個階段皆由 Azure 整合執行環境支援,你會被收取 [步驟 1 與步驟 2 複製時長之和] 乘以 [雲端複製單價]。
- 在執行混合式複製時,如果使用暫存 (即將資料從內部部署資料存放區複製到雲端資料存放區,且其中一個階段由自我裝載整合執行階段提供支援),則收費計算方式為:[混合式複製持續時間] × [混合式複製單位價格] + [雲端複製持續時間] × [雲端複製單位價格]。
相關內容
請參閱其他複製活動文章: