当前位置: 首页 > 知识库问答 >
问题:

Cassandra不使用时间戳字段执行insert语句

袁卓
2023-03-14

--更新:似乎是虚拟机的故障。我重新启动了Cassandra服务,它按预期工作。--UPDATE:似乎问题不在代码中,我尝试在Cassandra客户端中执行insert语句,得到了相同的行为,没有显示错误,没有插入任何东西。导致此行为的列类型为timestamp。当我将该列值设置为一些值(例如'2015-08-2522:15:12')时,该表为:create table player(msisdn varchar主键、game int、keyword varchar、inserted timestamp、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 driver 2.6 https://github.com/datastax/csharp-driver

共有1个答案

鲜于河
2023-03-14

可能缺少的一件事是player表的keyspace名称。通常您会有“插入到 .name(...”

如果您能够运行cqlsh,那么是否可以将“description TABLE .player”的输出添加到您的问题中,并显示当您试图在cqlsh中执行插入操作时会发生什么。

 类似资料:
  • 是否可以使用 Python 卡桑德拉驱动程序的预准备语句将时间戳值插入到卡桑德拉键空间中?当我尝试这样做时,我收到以下错误消息: 预期:<code> 我看到这个问题以前已经讨论过了。但不确定是否已经解决了。怎么做?使用简单的语句做同样的事情效率低下。

  • 从mytable中选择*,其中id='5'和postingdate>='2018-11-06 00:00:00'和postingdate<='2018-11-06 23:59:59'; 在开发中心控制台(或CQLSH)上运行这个查询,会给我相同的结果,而不考虑时区。我在PST和IST中都尝试过,得到了同样的结果。在执行查询之前,Cassandra是在执行PST->UTC还是IST->UTC转换?如

  • 我的目标是使用不同的主键将行从一个Cassandra2.0表移动到另一个表。为了确保数据的一致性,我需要用原始的时间戳插入它们()。我计划使用/复制,或者只使用和从CSV自定义导入。 是否有方法复制带有时间戳的行?在TimeUUID列上不起作用,说明“不正确的复制命令”。 提前谢了。

  • 我想查询cassandra timestamp列,例如this hour、last hour、beather。 我在mysql中执行了与昨天数据相同的查询

  • 使用Cassandra 2.28,Drive 3,Sparks2。我在Cassandra中有一个timestamp列,我只需要按日期部分查询它。如果我按日期查询:<代码>。其中(“交易日期=?”,“2012-01-21”:它不会带来任何结果。如果我包括时间部分,它会显示无效日期。我的数据(如我在cqlsh中所读)是:2012-01-21 08:01:00 0000 参数:“2012-01-21”

  • null 还是有其他(更好的)选择? 谢谢