Cassandra 不执行带有时间戳字段的插入语句
Posted
技术标签:
【中文标题】Cassandra 不执行带有时间戳字段的插入语句【英文标题】:Cassandra does not execute insert statement with timestamp field 【发布时间】:2015-11-19 15:58:54 【问题描述】:--更新:似乎是虚拟机出现了故障。我重新启动了 Cassandra 服务,它按预期工作。 --更新:似乎问题不在代码中,我尝试在Cassandra客户端中执行插入语句,我得到相同的行为,没有显示错误,没有插入任何内容。 导致此行为的列是时间戳类型。当我将此列值设置为某些值时(例如'2015-08-25 22:15:12') 表格是: 创建桌面播放器 (msisdn varchar 主键, game int,keyword varchar,插入时间戳,lang int,mo int,mt int,qid int,score int)
我是 Cassandra 的新手,下载了 VirtualBox 快照来测试它。 我正在尝试批处理的示例代码,它什么也没做,所以我尝试按照人们的建议直接执行准备好的语句。
var addPlayer = casDemoSession.Prepare("INSERT INTO player (msisdn,qid,keyword,mo,mt,game,score,lang,inserted) Values (?,?,?,?,?,?,?,?,?)");
for (int i = 0; i < 20; i++)
var bs = addPlayer.Bind(getRandMSISDN(), 1, "", 1, 0, 0, 10, 0, DateTime.Now);
bs.EnableTracing(true);
casDemoSession.Execute(bs);
上面的代码没有抛出任何异常,也没有插入任何数据。我试图跟踪查询,但它没有显示实际的 cql 查询。 PlannetCassandra V0.1 VM 运行 Cassandra 2.0.1 datastax 驱动 2.6 https://github.com/datastax/csharp-driver
【问题讨论】:
您能否使用您在客户端和表架构中测试的 CQL 进行更新? @Tamer,您是否打算使用DateTime.Now
而不是DateTime.Now()
?另外,您使用的是哪个驱动程序?
似乎是虚拟机出现了故障。我应该删除问题吗?
【参考方案1】:
可能缺少的一件事是您的播放器表的键空间名称。通常你会有 "INSERT INTO <keyspace>
.name (..."
如果您能够运行 cqlsh,您能否将“DESCRIBE TABLE <keyspace>
.player”的输出添加到您的问题中,并显示当您尝试在 cqlsh 中进行插入时会发生什么。
【讨论】:
以上是关于Cassandra 不执行带有时间戳字段的插入语句的主要内容,如果未能解决你的问题,请参考以下文章