是否有更快的插入Cassandra的方法

时间:2016-09-07 08:35:19

标签: c# cassandra

我每秒收到几条1000条消息,我希望尽快按时间顺序存储在Cassandra中。

目前,对于每条消息,我创建一个字符串,然后调用execute:

       string cmd = @"INSERT INTO tick_store.""MY_Data""
                            (""SeqNum"", ""AskPrice"", ""AskSize"", ""MY_Complete_Code"", ""BidPrice"", ""BidSize"", ""LastPrice"", ""LastSize"", ""RecordType"", ""Volume"", ""utcDT"")
                            VALUES(" + ++CqlSeqNum + @", " + AskPrice + @", " + AskSize + @", '" + MY_Complete_Code + @"', " + BidPrice + @", " + BidSize + @", "
                             //        + LastPrice + @", " + LastSize + @", '" + RecordType + @"', " + Volume + @", " + ToUnixTimestamp(utcDT) + @") ";
        +LastPrice + @", " + LastSize + @", '" + RecordType + @"', " + Volume + @", '" + utcDT.ToString("yyyy-MM-ddTHH:mm:ss.fff") + @"') ";

        CqlSession.Execute(cmd);

阻塞在“.Execute”行上。当我发表评论时表现很好。

作为参考,我可以将“cmd”写入磁盘而不会出现任何性能问题。

我可以尝试加速插入?

1 个答案:

答案 0 :(得分:1)

我并不是特别了解C#驱动程序,但是您的性能受到了影响,因为您似乎正在使用同步执行语句。如果要最大化插入性能,则应使用 ExecuteAsync 进行异步路由。此外,请考虑使用准备好的声明,它们可以提高性能。