RavenDB BulkInsert返回"错误请求"从C#调用时

时间:2015-08-28 18:28:12

标签: c# ravendb

我正在处理一段C#代码,它将记录从一个RavenDB数据库实例移动到另一个,修改过程中的某些值。它适用于简单的IDocumentSession

sessionDestination.Store(timeout);
sessionDestination.SaveChanges();

但是对于我处理的记录数量(超过15,000),逐个插入记录太慢了。我用Google搜索推荐的解决方案,即使用BulkInsert。我的代码如下所示:

using (var bulkInsertDestination = storeDestination.BulkInsert())
{
   ...
   foreach (var timeout in timeouts)
   {
    ...
    bulkInsertDestination.Store(timeout);

我几乎只检索了一个BulkInsertOperation,并将其与IDocumentSession交换。 (我用这个例子作为参考https://gist.github.com/PureKrome/5522741) 但是当我尝试执行bulkInsertDestination.Store(timeout)时;命令,我得到一个异常 - 来自服务器的400个错误请求:

{"The remote server returned an error: (400) Bad Request."}

起初我认为RavenDB服务器可能没有设置为允许批量插入。但是当我通过Web界面从转储文件导入数据时,它们显然是以512个批量导入的。

我发现可疑的一件事是我第一次打电话时命令失败了。我理解的方式是,默认批量大小是512,所以当我调用Store()方法时,它应该在本地保存记录,并且只有在达到512后才将数据发送到DB服务器。但似乎当我把记录放入其中时,它会尝试将其发送到数据库。

关于我做错什么的任何想法?

0 个答案:

没有答案