【问题标题】:What are the data types can be used with in map data type in CassandraCassandra的地图数据类型中可以使用哪些数据类型
【发布时间】:2026-01-08 05:00:01
【问题描述】:

我是 Cassandra 的新手,所以我只需要知道如果我创建的表的列具有带时间戳的映射数据类型是错误的。如果错了,我可以将哪些数据类型与地图数据类型一起使用?

CREATE TABLE login_user (
  user_name text,
  password text,
  location map<timestamp,text>,
  PRIMARY KEY (user_name)
); 

【问题讨论】:

  • 欢迎来到 Stack Overflow!请阅读How to Ask 并使用tour。我不是这方面的专家,但你为什么不直接尝试看看它是否有效?
  • 它太宽泛了。相反,我建议您尝试实现满足您要求的东西,如果它不起作用 - 请在此处提出问题,说明您尝试了什么以及遇到了什么错误。
  • @john 我已经收到一条错误消息,此行有多个标记 - 列 hq_status 类型 map 与类型 map 不兼容。这就是我问这个问题的原因。不感兴趣的请忽略

标签: database cassandra


【解决方案1】:

根据Collections 上的 Apache 文档,您可以使用任何 cql_type。 CQL 类型列在there:时间戳就是其中之一。

以下查询正在运行:

INSERT INTO login_user (user_name , password , location ) VALUES ( 'bob', 'secret', { totimestamp(now()): 'time1'} );
INSERT INTO login_user (user_name , password , location ) VALUES ( 'july', 'secret', { '2011-02-03 04:05+0000': 'time1'} );

您可能想检查插入时间戳的方式,可能是 CQL 解释器认为它是文本。查看working with timestamp 的文档。

【讨论】:

  • 非常感谢,Datastax DevCenter 向我显示“dateof() 函数在 Cassandra 2.2.0 中已弃用。您当前使用的是 Cassandra 3.11.2”,但插入返回的正是我的原样寻找。
  • 啊,是的。我更新了答案以使用 totimestamp() 而不是 dateof()
最近更新 更多