2011-06-15 57 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的源文件,这一点很重要。