Cassandra 如何在卡桑德拉进行投票?
我正试图找到一种通过cassandra数据库进行民意调查的方法,但我对这方面还不太熟悉,不知道怎么做 假设我有一个这样的“用户”表Cassandra 如何在卡桑德拉进行投票?,cassandra,polling,Cassandra,Polling,我正试图找到一种通过cassandra数据库进行民意调查的方法,但我对这方面还不太熟悉,不知道怎么做 假设我有一个这样的“用户”表 -> users -> user_name -> gender -> state 我希望不断地进行轮询,以便知道是否有新用户添加到表中。如何做到这一点?关系数据库中的标准方法将涉及执行SELECT,按与时间相关的ID降序排序,以便始终首先返回最新行,这样您就可以查看它是否匹配上一个“最新行”,并识别更改-在cassa
-> users
-> user_name
-> gender
-> state
我希望不断地进行轮询,以便知道是否有新用户添加到表中。如何做到这一点?关系数据库中的标准方法将涉及执行SELECT,按与时间相关的ID降序排序,以便始终首先返回最新行,这样您就可以查看它是否匹配上一个“最新行”,并识别更改-在cassandra中,这是行不通的,因为没有WHERE子句,结果按分区的令牌排序,这(几乎可以肯定)是随机的 然后,解决方案是创建一个具有分区的表,其中用户在给定分区内进行排序。例如:
CREATE TABLE user_buckets (
bucket text,
user_timestamp timeuuid,
user_username text,
PRIMARY KEY(bucket, user_timestamp)
) WITH CLUSTERING ORDER BY (user_timestamp DESC);
在本例中,您将同时写入users表和user_bucket表,其中“bucket”是合理的(例如date(YYYY)-其中每个分区包含当年注册的所有用户,或者date(yyyyymmdd)-其中每个分区包含当天注册的所有用户),然后使用SELECT。。。来自用户_bucket,其中bucket=(当前bucket)和用户_timestamp>(您看到的最后一个时间戳)