我需要找出Cassandra表中的记录计数是否大于一定的数字,例如10000。
我仍然没有大的数据集,但在大规模下,可能有数十亿条记录,我如何能够有效地实现这一点?
可能有几十亿张唱片,或者只有几千张。我只需要知道是多还是少10K。
这下面似乎是不对的,我认为它将失败或非常缓慢的大量记录。
从sourceId={id}和timestamp<{endDate}和timestamp>{startDate}的数据中选择COUNT(*);
我也可以这样做:
还有别的办法吗?带限制的选择看起来很蠢,但似乎是最可行的。
sourceId是分区键,timestamp是集群键。
Cassandra版本是3.11.4,我在Spring工作,如果它有任何相关性的话。
您可以在分区键中引入bucket_id,因此主键将是((sourceId,bucket_id),timestamp)。Bucketing使用cassandra来约束属于单个分区的数据行,即分区将被分割成更小的块。要计数所有行,对每个分区(source_id、bucket_id)发出带有附加时间戳字段的异步查询。Bucket_id可以从时间戳派生出来,这样就可以定义需要访问哪个Bucket_id。
另一种解决方案:
谢谢Nikhil
我对Cassandra相当陌生,在过去的一个月里读了很多书。 我正在研究一个小用例。 查询:基于在某个时间范围内播放的金额排名前 X 的玩家。 因此,在任何给定的时间范围内,我都希望汇总玩家的总游戏次数,并得出排名前X的玩家。 我遵循了创建UDF(使用C*-2.2.0版本)的方法,用于聚合AmountPlay by a Player。 下面是我为这个用例设计的时间序列数据模型。 请让我知道我的数据
我使用的是spring数据cassandra,需要使用jpa映射一个字段,在cassandra中,该字段的类型为
我用Spring Data Cassandra 2.2.1开发了一个新的应用程序,想在Cassandra 2.1.9服务器上运行它(旧的,我知道)。但是我们得到了错误 Spring数据卡桑德拉手册声称Spring数据2.2.1至少需要卡桑德拉2.1,所以这应该有效,但它没有。我们包含的唯一特定于卡桑德拉的依赖项是 我怎样才能让这个工作?
我们运行的cassandra集群有3个节点,复制因子为2。 我们的nodejs服务器是查询这个集群的唯一地方。 是否有其他任何地方的参数设置可能导致不一致的查询? cassandra v2.2.4 nodejs驱动程序v3.0.0 编辑-添加我正在做的事情的示例: 1)检查用户名是否被占用 2)创建用户
我们一直在使用Spark RDD API(Spark 2.0)来处理在Cassandra.Note中建模的数据,这些数据在Cassandra中建模以实现高效的读写。 然而,现在还有SparkSQLAPI,Spark DataFrame API,它也是一种替代的数据访问方法-http://spark.apache.org/docs/latest/sql-programming-guide.html