参考文献:
然后,在节点内聚类数据时似乎没有使用PK,这听起来是错误的。如果我有一个简单的primary和pk呢?因为没有集群列,Cassandra会不会只在节点间分发数据,而不在每个节点内对数据进行排序?
问得好。我们来试试这个。我将创建一个简单的表并插入
一些数据:
aploetz@cqlsh:stackoverflow> CREATE TABLE programs
(name text PRIMARY KEY, data text);
aploetz@cqlsh:stackoverflow> INSERT INTO programs (name) VALUES ('Tron');
aploetz@cqlsh:stackoverflow> INSERT INTO programs (name) VALUES ('Yori');
aploetz@cqlsh:stackoverflow> INSERT INTO programs (name) VALUES ('Quorra');
aploetz@cqlsh:stackoverflow> INSERT INTO programs (name) VALUES ('Clu');
aploetz@cqlsh:stackoverflow> INSERT INTO programs (name) VALUES ('Flynn');
aploetz@cqlsh:stackoverflow> INSERT INTO programs (name) VALUES ('Zuze');
现在,让我们运行一个查询来回答您的问题:
aploetz@cqlsh:stackoverflow> SELECT name, token(name) FROM programs;
name | system.token(name)
--------+----------------------
Flynn | -1059892732813900311
Zuze | 1815531347795840810
Yori | 2854211700591734382
Quorra | 3079126743186967718
Tron | 6359222509420865788
Clu | 8304850648940574176
(6 rows)
我正在尝试将以下结构存储在卡桑德拉中。 上面的大多数查询是 这就是为什么将()设置为主键很有用的原因。 根据docu,Cassandra的默认分区键是主键的第一列-在我的例子中是,但我想在Cassandr集群上均匀分布数据,我不能允许一个中的所有数据只存储在一个分区中,因为有些商店有10M条记录,有些只有1k条记录。 我可以设置()作为分区键,然后我可以达到Cassandra集群中记录的统一分布。
我的主要问题是用复合分区键对表上的Cassandra resultset进行分页。然而,我试图用一个简单的场景来缩小范围。喂,我有桌子, 我有一个数据, 我的模式使用默认的分区器(Murmur3Partitioner)。这是完全可以实现的吗?
我正在学习Cassandra,并有一个关于分区/集群键的问题。 我有一个表,存储数据的股份,如行业的分支,最近6/12个月的业绩,名称等。 该表如下所示: 多谢了,伙计们
我试图在卡桑德拉的一小部分数据上运行一个火花工作。我手头有一个键的RDD(分区和集群列),我只想在这些键上运行我的作业。 我在BoundStatementBuilder上收到以下错误:19
根据这篇博客: ORDER BY子句只能选择单个列,并且该列必须是复合主键中的第二列。即使对于主键中包含超过2个列组件的表也是如此。排序可以按升序或降序进行,默认为升序,并用ASC或DESC关键字指定。 复合中的第二列表示第一个群集键。如果列必须是复合中的第二列,那么拥有多个集群键有什么好处?
null 关于如何管理分区密钥的依赖关系,您有什么建议吗?或者我没有根据cosmosdb最佳实践以最佳方式对数据层建模?