Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cassandra 如何在卡桑德拉进行投票?_Cassandra_Polling - Fatal编程技术网

Cassandra 如何在卡桑德拉进行投票?

Cassandra 如何在卡桑德拉进行投票?,cassandra,polling,Cassandra,Polling,我正试图找到一种通过cassandra数据库进行民意调查的方法,但我对这方面还不太熟悉,不知道怎么做 假设我有一个这样的“用户”表 -> users -> user_name -> gender -> state 我希望不断地进行轮询,以便知道是否有新用户添加到表中。如何做到这一点?关系数据库中的标准方法将涉及执行SELECT,按与时间相关的ID降序排序,以便始终首先返回最新行,这样您就可以查看它是否匹配上一个“最新行”,并识别更改-在cassa

我正试图找到一种通过cassandra数据库进行民意调查的方法,但我对这方面还不太熟悉,不知道怎么做

假设我有一个这样的“用户”表

-> 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>(您看到的最后一个时间戳)