如何按数据范围查询Cassandra中的复合列,以TimeUUID作为第一个组件?

时间:2012-07-20 07:08:47

标签: date dynamic cassandra composite

1)插入一列

DynamicComposite dc = new DynamicComposite();
dc.add(0,TimeUUIDUtils.getUniqueTimeUUIDinMillis());

2)尝试使用SliceQuery

在给定时间范围内查询列
UUID afterUUID = TimeUUID.getTimeUUID((new Date (2012, 7, 17, 24, 0).getTime())); 
    UUID beforeUUID = TimeUUID.getTimeUUID((new Date (2012, 7, 20, 24, 0).getTime())); 
    startRange.add(0, afterUUID);
    endRange.addComponent(0,beforeUUID, UUIDSerializer.get(), "TimeUUIDType", AbstractComposite.ComponentEquality.GREATER_THAN_EQUAL);

在7/19上执行代码,以便列匹配但不匹配。

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

Cassandra正在使用UTC System.currentTimeInMillis()。在UTC中查询时,您的查询应该有效。