Cassandra批插入使用DataStax c#驱动程序

本文关键字:DataStax 驱动程序 插入 Cassandra | 更新日期: 2023-09-27 18:18:54

我正在构建应用程序来测量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批插入使用DataStax c#驱动程序

在Cassandra中批处理语句不是为批量加载而创建的,在c#常见问题解答中,Datastax明确建议批处理的大小为几十。

如果你想在你的案例中插入大量的数据,你应该使用常规或异步语句来完成。