是否将文件批量加载到SQL Azure?

是否将文件批量加载到SQL Azure?,azure,bulkinsert,azure-sql-database,bcp,Azure,Bulkinsert,Azure Sql Database,Bcp,我有一个ASP.NET应用程序,可以上传多兆字节的文件,将它们写入磁盘,然后MSSQL 2008使用BCP加载它们 我想把整个事情都转移到Azure,但既然BCP没有“文件”,有人能评论一下如何将Azure应用程序中的批量数据转移到SQLAzure中吗 我确实看到了,但不确定这是否适用 谢谢。有关可用选项的详细分析您走上了正确的道路。批量复制API可以工作。我正在使用它。这是导入数据的最快方法,因为它使用INSERT BULK语句。不要与SQL Azure中不支持的批量插入语句混淆。本质上,BC

我有一个ASP.NET应用程序,可以上传多兆字节的文件,将它们写入磁盘,然后MSSQL 2008使用BCP加载它们

我想把整个事情都转移到Azure,但既然BCP没有“文件”,有人能评论一下如何将Azure应用程序中的批量数据转移到SQLAzure中吗

我确实看到了,但不确定这是否适用


谢谢。

有关可用选项的详细分析

您走上了正确的道路。批量复制API可以工作。我正在使用它。这是导入数据的最快方法,因为它使用INSERT BULK语句。不要与SQL Azure中不支持的批量插入语句混淆。本质上,BCP和SqlBulkCopy API使用相同的方法

BCP是一种方法

这篇文章用三个简单的步骤来解释:

我认为需要注意的是,BCP在使用格式文件进行导入时无法处理Unicode源文件

将80gb文件BCP到azure需要12小时。如果我在本地批量插入,需要2小时。是否有类似于从azure中的本地文件执行bcping的提示?@MIKE您是否尝试过在同一数据中心内运行命令表单和azure VM?你可以将80gig文件放在Azure文件存储文件夹中,这样就可以让VM使用它。听起来是个聪明的主意。我试试这个。您知道azure是否会在标准层和高级层上限制bcp(降低插入速度)?在插入时,我注意到它大约插入了10次1000次,然后延迟了30秒,我不确定它是否被我的本地机器或azure限制。(不是我的本地计算机,它是一台服务器)@MIKE我对它没有任何经验,所以说不出来。您可能希望将Azure SQL数据库升级到一个更强大的层,因为您需要大量的DTU。这可能会减慢速度。我转移到同一个仓库中的vm,bcp现在非常快。我还没有从标准版到高级版测试bcp速度,但我确实在标准版上遇到了一个问题,当我从一个大表中删除重复项时,tempdb因为太大而抛出了一个错误,我不得不改用premium,但它没有抱怨如果上传的是ASP.NET网页,那么如果数据大于30 MB,您将遇到与我相同的问题,请参阅我的问题以了解更多信息。请注意,本文是在SQL Azure后面的早期体系结构上编写的。如今,它的工作方式并不完全相同(在DTU或vCore模型中)。大容量复制是尝试将数据快速加载到SQL Azure中的一种更合适的方法,因为它减少了往返次数、组写入更大的事务,并且在插入时需要更多的锁,以避免锁定插入的每一行的开销。Hi@Conor Cunningham MSFT:是否有更新的MS文章可用?我目前专门使用SqlBulkCopy将数据快速加载到Azure SQL数据库中。我将查看内容,看看是否有更新的内容。不久前,我与人合著了一份关于这一点的白皮书,但它也可能已经过时了。云中的事物移动得更快;)。大容量插入是加载到SQL Azure的最快方式,但是在批处理/txn大小、客户端与SQL Azure的距离以及是否需要大容量插入到永久表和临时表中(后者在高级/v-core模型中插入要快得多,因为提交时不必跨节点复制)方面存在细微差别。