我是Cassandra的新手。
我们有这样的表结构
CREATE TABLE keyspace.events (
id bigint,
msg_time bigint,
status int,
uuid timeuuid,
message text,
PRIMARY KEY (id, msg_time, status, uuid)
) WITH CLUSTERING ORDER BY (msg_time ASC, status ASC, uuid ASC)
CREATE INDEX timestamp ON hh_keyspace.game_events (msg_time);
我们插入TTL为32天的数据。 Google Analytics小组只需要最近1天的数据。使用msg_time查询> ''允许过滤会对性能产生巨大影响。
Google Analytics小组每天运行查询。有没有其他方法来获取数据。
答案 0 :(得分:1)
我意识到最好的方法是复制数据,因为写入在Cassandra中很便宜。我们写入另一个具有不同密钥结构的表。
参考:
1)http://blog.websudos.com/2014/08/16/a-series-on-cassandra-part-1-getting-rid-of-the-sql-mentality/(第4节 - 复制数据并在应用程序级别保持一致性)
2)http://blog.websudos.com/2014/08/23/a-series-on-cassandra-part-2-indexes-and-keys/(章节 - 二级索引)
答案 1 :(得分:0)
使用msg_time查询> ''允许过滤会对性能产生巨大影响。
允许过滤表示正常生产数据集上的SURELY TIMEOUT。这里不足为奇。
是否有其他方法可以获取数据
为您的表建模,以便查询(给我最后一天的数据)非常快。 您希望有多少活动,因为有史以来最大的负载每天?