我有一个Cassandra ColumnFamily(0.6.4),它将有来自用户的新条目.我想查询Cassandra的新条目,以便我可以在另一个系统中处理这些数据.
我的感觉是我可以使用TimeUUIDType作为我的条目的密钥,然后查询KeyRange,它以""作为startKey或者lastStartKey开始.这是正确的方法吗?
get_range_slice如何实际创建范围?是否必须知道密钥的数据类型?任何地方都没有声明密钥的数据类型.在storage_conf.xml文件中,您声明列的类型,但不声明键的类型.假设密钥与列的类型相同吗?或者它会做一些神奇的嗅探猜测?
我也看过人们在列中存储TimeUUIDType的参考实现.然而,这似乎有规模问题,因为这个特定的密钥将变得"热",因为每个更改都必须更新它.
在这种情况下的任何指针将不胜感激.
对数据进行排序时,只有列键很重要。存储的数据无关紧要,自动生成的时间戳也无关紧要。CompareWith 属性在这里很重要。如果将 CompareWith 设置为 UTF8Type,则键将被解释为 UTF8Type。如果将 CompareWith 设置为 TimeUUIDType,则键将自动解释为时间戳。您不必指定数据类型。查看此页面上的 SlicePredicate 和 SliceRange 定义http://wiki.apache.org/cassandra/API这是一个很好的起点。另外,您可能会发现这篇文章很有用http://www.sodeso.nl/?p=80在第三部分左右,他谈论了切片范围查询等。