Cassandra - 使用"日期"与"文本"类型作为分区日期键

mau*_*k13 5 cassandra

我们有一个模式,其中分区键将是一个日期(yyyy-MM-dd),我们正在考虑选择此分区键的文本日期之间的数据类型.

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

这是一个示例模式.

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)
);
Run Code Online (Sandbox Code Playgroud)

Ash*_*lam 5

卡桑德拉日期类型:

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

卡桑德拉文字类型:

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

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