如何使用cassandra实现分析任务?

时间:2014-08-19 10:47:29

标签: cassandra

我正在尝试创建一个列系列来存储一些分析。

这是我的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.

什么是满足我需要的解决方案?

我希望我的答案很明确。

谢谢!

2 个答案:

答案 0 :(得分:1)

您无法将该表用于第二个查询。你可以:

  • 创建一个单独的表,其值/值范围为pks,并具有管理该数据的其他内容。您正在使用计数器表,因此我认为准确的准确性并不重要。

  • 使用类似Spark的cassandra连接器,并将其用于第二个查询。

答案 1 :(得分:1)

每个查询一个表是Cassandra的黄金法则。但是,如果您使用时间戳或timeuuids存储时间信息,您似乎可以处理此问题。查询时,您可以从数据中获取确切日期,并按照您希望向用户显示的方式对其进行分析。