如何在cassandra中存储微秒级别的时间戳?

时间:2016-01-11 20:48:15

标签: cassandra

我试图在包含微秒级时间戳的cassandra中存储数据。 Cassandra的博士说,时间戳'数据类型可以存储自纪元以来的毫秒数,但互联网上的几条消息似乎暗示cassandra本身可以存储微秒时间戳。

在cassandra中存储微秒级时间的最佳方法是什么?我应该省略日期部分并存储多长时间吗?

我试图疼痛的columsn看起来像这样: 2015-11-18 07:30:46.700824

我收到以下错误:

ErrorMessage代码= 2200 [无效查询]消息="无法强制执行' 2015-11-18 07:30:18.261543'到格式化的日期(长)"

在记录#1中止导入。之前插入的记录仍然存在,之后的一些记录也可能存在。

我的cassandra版本: [cqlsh 5.0.1 | Cassandra 2.1.11 | CQL规范3.2.1 |原生协议v3]

编辑: 以下是Cassandra自己的文档中微秒混淆的一个例子:

" CAS和CQL中的新功能(如DROP COLUMN)假设单元格时间戳为微秒 - 自纪元以来#34;

https://docs.datastax.com/en/upgrade/doc/upgrade/cassandra/upgradeChangesC_c.html

另一个:https://issues.apache.org/jira/browse/CASSANDRA-8297

EDIT2: 我应该提一下,我打算用spark来查询。据我所知,spark解析了自己的sql风格,并将其转换为cassandra(虽然我在zeppelin中使用CassandraContext)。什么可能有助于或阻碍我搜索微秒级时间图?

1 个答案:

答案 0 :(得分:1)

您可以使用bigint或timeuuid。 Type 1 uuid的精度为100ns,因此它可以覆盖你。一些实用程序,库,便利函数可能无法满足您的需求,因此请准备好编写一些uuid函数。