1
我有这个表:卡桑德拉秩序和聚集键
CREATE TABLE custumer_events_service.events_by_websiteId_time(
"event_id" text,
"currentTime" timestamp,
"websiteId" varchar,
OTHER COLUMNS ...
PRIMARY KEY(event_id, websiteId, currentTime)
)
在这种情况下,我会得到通过currentime
有序当我执行此查询10000行:
SELECT * FROM events_by_websiteid_time WHERE websiteid='xxxx' LIMIT 10000 ALLOW FILTERING;
还是我要在末尾添加WITH CLUSTERING ORDER BY (currentTime DESC);
?
+1感谢您的回答Aron(再一次;-)),第一个解决方案(使用CLUSTERING ORDER)有什么缺点?在第二种解决方案中,我不会冒我的群集失衡的风险,因为我通过websiteId有一个非等价的事件分布。 – farhawa
@farhawa第一个解决方案的缺点是涉及将数据复制到新的查询表中。但是,如果您需要为'websiteid'和'event_id'键入查询,那么您可能需要两个表......交易磁盘以提高性能。至于第二种解决方案中的不平衡性,如果它有很大的差异,那么添加额外的“存储桶”来帮助分割数据(如日或月)或其他适合您的用例的其他内容是有意义的。 – Aaron
当我学习cassandra时,我发布了一个新问题http://stackoverflow.com/questions/35880249/cassandra-the-same-query-work-with-cql-but-not-with-python-driver can you看一看?提前致谢 – farhawa