【发布时间】:2020-03-05 01:53:57
【问题描述】:
亲爱的,
我正在尝试使用 C# 应用程序将大约 100 000 行插入 Cassandra 数据库。
为了实现这一点,我正在使用 nuget:
https://www.nuget.org/packages/CassandraCSharpDriver/
我已在笔记本电脑(i5、32GB RAM、Windows 10)上本地安装 Cassandra。
我的 Cassandra 的设置是默认的:
var cluster = Cluster.Builder()
.AddContactPoints(CassandraContactPoint)
.WithPort(CassandraPort)
.WithLoadBalancingPolicy(new DCAwareRoundRobinPolicy("datacenter1"))
.WithAuthProvider(new PlainTextAuthProvider(UserName, Password))
.Build();
Cassandra 表如下所示:
session.Execute("DROP KEYSPACE IF EXISTS eventstore");
session.Execute("CREATE KEYSPACE eventstoreWITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 1 };");
session.Execute(@"
CREATE TABLE IF NOT EXISTS eventstore.Event(
Id uuid,
Data text,
Version int,
AgregateId uuid,
EventIdentity uuid,
Date timestamp,
PRIMARY KEY (AgregateId,Version)
) WITH CLUSTERING ORDER BY (Version ASC)");
要插入事件,我使用以下代码:
events 变量包含 2000 个在 3 秒内插入的事件。
var tasks = events.Select(async @event =>
{
await mapper.InsertAsync(@event);
});
await Task.WhenAll(tasks);
目前此解决方案的性能约为 2000 个事件的 3 秒。 可以更快地插入数据吗??
【问题讨论】:
标签: c# cassandra insert datastax bulkinsert