【问题标题】:Cassandra does not execute insert statement with timestamp fieldCassandra 不执行带有时间戳字段的插入语句
【发布时间】: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()?另外,您使用的是哪个驱动程序?
  • 似乎是虚拟机出现了故障。我应该删除问题吗?

标签: cassandra cql datastax


【解决方案1】:

可能缺少的一件事是您的播放器表的键空间名称。通常你会有 "INSERT INTO &lt;keyspace&gt;.name (..."

如果您能够运行 cqlsh,您能否将“DESCRIBE TABLE &lt;keyspace&gt;.player”的输出添加到您的问题中,并显示当您尝试在 cqlsh 中进行插入时会发生什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-19
    • 2017-03-06
    • 2018-10-06
    • 1970-01-01
    • 2017-09-05
    • 2020-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多