我正在构建应用程序来测量NoSQL数据库的性能,我有一个问题,批量插入大量的数据,在Cassandra数据库。
当我试图批量插入超过1000条记录时,使用DataStax c#驱动程序,我得到一个AggregateException。
这是我的数据模型:
public Guid Id { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public int Year { get; set; }
public string Genres { get; set; }
public int Rating { get; set; }
public string OriginalLanguage { get; set; }
public string ProductionCountry { get; set; }
public int VotingsNumber { get; set; }
这是我的代码:
private string InsertData(ISession session, List<Movie> moviesList)
{
var table = session.GetTable<Movie>();
table.CreateIfNotExists();
var batch = session.CreateBatch();
foreach (var record in moviesList)
{
batch.Append(table.Insert(record));
}
Stopwatch watch = new Stopwatch();
watch.Start();
batch.Execute();
watch.Stop();
return watch.ElapsedMilliseconds.ToString();
}
谁能告诉我我做错了什么? 在Cassandra中批处理语句不是为批量加载而创建的,在c#常见问题解答中,Datastax明确建议批处理的大小为几十。
如果你想在你的案例中插入大量的数据,你应该使用常规或异步语句来完成。