使用DataStax c#driver

时间:2015-10-23 12:14:29

标签: c# cassandra datastax batch-insert

我正在构建应用程序以测量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();
}

有人可以向我解释我做错了吗?

1 个答案:

答案 0 :(得分:7)

批量报表不用于Cassandra中的批量加载,在C# faq Datastax明确建议批量大小为数十。

如果您想在案例中插入大量数据,则应regular or async statements这样做。