【发布时间】:2016-04-16 07:23:01
【问题描述】:
我正在尝试将数据存储在包含微秒级时间戳的 cassandra 中。 Cassandra 的文档说 'timestamp' 数据类型可以存储自纪元以来的毫秒数,但互联网上的一些消息似乎暗示 cassandra 可以原生存储微秒时间戳。
在 cassandra 中存储微秒级时间的最佳方法是什么?我应该省略日期部分并存储很长时间吗?
我正在尝试使一个看起来像这样的柱子疼痛: 2015-11-18 07:30:46.700824
我收到以下错误:
ErrorMessage code=2200 [Invalid query] message="unable to coerce '2015-11-18 07:30:18.261543' to a formatted date (long)"
在记录 #1 处中止导入。之前插入的记录仍然存在,之后的一些记录也可能存在。
我的 cassandra 版本: [cqlsh 5.0.1 |卡桑德拉 2.1.11 | CQL 规范 3.2.1 |原生协议 v3]
编辑: 这是 Cassandra 自己的文档中的微秒混淆示例:
“CAS 和 CQL 中的新功能(例如 DROP COLUMN)假定单元时间戳为微秒-since-epoch”
https://docs.datastax.com/en/upgrade/doc/upgrade/cassandra/upgradeChangesC_c.html
另一个:https://issues.apache.org/jira/browse/CASSANDRA-8297
编辑2: 我应该提到我打算使用 spark 来查询这个。据我了解,spark 会解析自己的 sql 风格并将其转换为 cassandra(尽管我在 zeppelin 中使用 CassandraContext)。有什么可能有助于或阻碍我搜索微秒级时间图的吗?
【问题讨论】:
-
这里有两个不同的概念:将时间戳存储在“列”中,以及 Cassandra 在内部使用的时间戳“标签”(主要用于节点同步和插入/更新插入)。
标签: cassandra