当前位置: 首页 > 知识库问答 >
问题:

Cassandra:分区密钥在集群中也使用吗?

能烨华
2023-03-14

参考文献:

  • https://docs.datastax.com/en/cql/3.1/cql/ddl/ddl_compound_keys_c.html
  • Cassandra中分区键、复合键和聚类键的区别?

共有1个答案

南宫天逸
2023-03-14

然后,在节点内聚类数据时似乎没有使用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最佳实践以最佳方式对数据层建模?