我正在尝试创建一个列系列来存储一些分析。
这是我的cf:
CREATE TABLE myKeySpace.trend(
id uuid,
value text,
year int,
month int,
day int,
counter counter,
primary key(id,year,month,day,value))
这是我需要的查询:
1 - 选择特定日期范围的所有值 - >这不是问题,因为我可以进行指定id,年月和日的查询。
2 - 选择特定值的所有日期(或日期范围)。
->I can't do this because i can't use range for year/month/day with a specific value.
->A solution could be using secondary index but i can't add index on that table because secondary index are not allowed on counter tables.
什么是满足我需要的解决方案?
我希望我的答案很明确。
谢谢!
答案 0 :(得分:1)
您无法将该表用于第二个查询。你可以:
创建一个单独的表,其值/值范围为pks,并具有管理该数据的其他内容。您正在使用计数器表,因此我认为准确的准确性并不重要。
使用类似Spark的cassandra连接器,并将其用于第二个查询。
答案 1 :(得分:1)
每个查询一个表是Cassandra的黄金法则。但是,如果您使用时间戳或timeuuids存储时间信息,您似乎可以处理此问题。查询时,您可以从数据中获取确切日期,并按照您希望向用户显示的方式对其进行分析。