2011-06-15 93 views
14

我有一個ASP.NET應用程序需要多兆字節的文件上傳,將它們寫入磁盤,以後MSSQL 2008將它們加載到BCP。批量加載文件到SQL Azure中?

我想將整個事情轉移到Azure,但由於沒有用於BCP的「文件」,任何人都可以評論如何將批量數據從Azure應用程序獲取到SQL Azure中嗎?我看過http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.aspx但我不確定是否適用。

謝謝。

+1

如果上傳來自ASP.NET網頁,您將遇到同樣的問題,如果數據大於30 MB,請參閱我的問題http://stackoverflow.com/questions/6402253/how-to-上傳大文件到天藍色博客從網頁獲取更多信息。 – 2011-06-19 12:21:02

回答

7

BCP是一種方法。

這篇文章解釋了它在三個簡單的步驟: Bulk insert with Azure SQL

+0

BCP一個80GB的文件到azure需要12個小時。如果我在本地批量插入,則需要2個小時。是否有任何提示從azure內的本地文件中刪除? – MIKE

+1

@MIKE是否嘗試在同一個數據中心內運行命令窗體和Azure VM? 您可以將80gig文件放入Azure文件存儲文件夾中,這將使其可用於VM。 –

+0

聽起來像一個聰明的想法。我會試試這個。你知道azure是否會在標準層與高級層之間調節bcp(減慢插入速度)?插入時,我注意到它大約有10個插入,然後延遲了30秒,我不確定它是否被我的本地機器或天藍色遏制。 (不是我的本地計算機,它是服務器) – MIKE

3

選項的詳細分析。大容量複製API將起作用。我正在使用它。這是導入數據的最快方式,因爲它使用INSERT BULK語句。不要混淆SQL Azure不支持的BULK INSERT語句。實質上,BCP和SqlBulkCopy API使用相同的方法。

1

我認爲需要注意的是BCP無法處理,而使用的格式文件做你的進口是Unicode的源文件,這一點很重要。