Cassandra - 使用" date" vs" text"分区日期键的类型

时间:2017-03-07 08:06:45

标签: cassandra

我们有一个架构,其中分区键将是一个日期(yyyy-MM-dd),我们正在考虑选择 text date 之间的数据类型这个分区键。

一种数据类型是否提供了另一种数据类型的优势?它们在查询/存储方面有何不同?

这是一个示例架构。

CREATE TABLE test.user_sessions (
    sess_date date (or text),
    sess_starttime timestamp,
    event_type text,
    total_req int,
    ended_at timestamp
    PRIMARY KEY (sess_date, sess_starttime)
);

2 个答案:

答案 0 :(得分:5)

Cassandra日期类型:

  

值是没有相应时间值的日期; Cassandra将日期编码为32位整数,表示自纪元(1970年1月1日)以来的天数

Cassandra文字类型:

  

UTF-8编码的字符串;每个字符16位

如果将日期(yyyy-MM-dd)存储为日期数据类型,则每个条目只占32位。另一方面,如果您将日期存储为文本,则需要10 * 16 = 160位存储。

答案 1 :(得分:3)

根据您的意见,如果您需要最大的可移植性,只需将信息存储为与yyyy-MM-dd 00:00:00(截断时间戳)相对应的时间戳(即64位数) 。你可以通过"通用"号码......