我正在构建应用程序以测量NoSQL数据库性能,我在Cassandra数据库中批量插入大量数据时遇到问题。
当我尝试使用DataStax C#驱动程序批量插入超过1000条记录时,我收到了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();
}
有人可以向我解释我做错了吗?
答案 0 :(得分:7)
批量报表不用于Cassandra中的批量加载,在C# faq Datastax明确建议批量大小为数十。
如果您想在案例中插入大量数据,则应regular or async statements这样做。