我有這樣的管道副本活動數據工廠:Azure的數據工廠副本活動SQL:掛在70000行
{
"type": "Copy",
"name": "Copy from storage to SQL",
"inputs": [
{
"name": "storageDatasetName"
}
],
"outputs": [
{
"name": "sqlOutputDatasetName"
}
],
"typeProperties": {
"source": {
"type": "BlobSource"
},
"sink": {
"type": "SqlSink"
}
},
"policy": {
"concurrency": 1,
"retry": 3
},
"scheduler": {
"frequency": "Month",
"interval": 1
}
}
輸入數據大約是在大小爲90MB,約1.5萬行,分解成約。 Azure存儲中的20 x 4.5MB塊blob文件。這裏的數據(CSV)的示例:
A81001,1,1,1,2,600,3.0,0.47236654,141.70996,0.70854986 A81001,4,11,0,25,588,243.0,5.904582,138.87576,57.392536 A81001,7,4,1,32,1342,278.0,7.5578647,316.95795,65.65895
接收器是一個類型爲S2的Azure SQL Server,它的額定值爲50個DTU。我已經創建了敏感數據類型的一個簡單的表格,沒有鍵,索引或任何幻想,只是列:
CREATE TABLE [dbo].[Prescriptions](
[Practice] [char](6) NOT NULL,
[BnfChapter] [tinyint] NOT NULL,
[BnfSection] [tinyint] NOT NULL,
[BnfParagraph] [tinyint] NOT NULL,
[TotalItems] [int] NOT NULL,
[TotalQty] [int] NOT NULL,
[TotalActCost] [float] NOT NULL,
[TotalItemsPerThousand] [float] NOT NULL,
[TotalQtyPerThousand] [float] NOT NULL,
[TotalActCostPerThousand] [float] NOT NULL
)
源,水槽和數據工廠都在同一地區(北歐)。
根據微軟的'Copy activity performance and tuning guide',對於Azure存儲源和Azure SQL S2接收器,我應該獲得大約0.4 MBps。通過我的計算,這意味着90MB應該在大約一半小時內傳輸(是嗎?)。
出於某種原因,副本70000行速度非常快,然後似乎掛起。使用SQL管理工作室,我可以看到數據庫表中的行數恰好爲70,000,並且在7小時中完全沒有增加。然而,副本任務仍然沒有任何錯誤運行:
任何想法,爲什麼這是掛7萬行?我看不到任何有關第70,001行數據的異常情況,這會導致問題。我試圖強行摧毀數據工廠並重新開始,而且我總是得到相同的行爲。我有一個小表(8000行),在1分鐘內完成另一個複製活動。
這是偉大的,但你究竟是如何解決這個問題的? – m1nkeh
我不得不從70,000行手動掃描我的數據文件尋找任何問題!幸運的是,空值/空值顯示出來了:p我後來研究出可以更改批量大小,例如到100,這意味着它將掛起一行號碼,該號碼距離問題最多100行 –