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

使用cassandra-cli或CQL更改cassandra列族主键

荀学文
2023-03-14
CREATE TABLE "table1" (
  key blob,
  column1 blob,
  value blob,
  PRIMARY KEY (key, column1)
);
CREATE TABLE "table1" (
  key blob,
  column1 blob,
  value blob,
  PRIMARY KEY (key)
);

共有1个答案

阴礼骞
2023-03-14

主键直接决定cassandra如何以及在何处存储表(列族)中包含的数据。主键由分区键和集群键(可选)组成。

分区键决定哪个节点存储数据。它负责跨节点的数据分发。附加列决定每个分区的集群(请参见复合键文档)。

因此,更改主键总是需要迁移所有数据。我不认为cqlsh或cassandra-cli有这样的命令(截至2015年)..

 类似资料:
  • 我试图在Cassandra CLI版本1.1.6中创建一个列族,我不确定如何将主键指定为MovieID。

  • node-cassandra-cql 是一个 Apache Cassandra CQL3 二进制协议的 Node.js CQL 驱动。CQL 是 Cassandra 的查询语言。该项目提供到多个主机的连接池、查询参数,以及可通过列名获取数值和支持 bigint。 示例代码: // Creating a new connection pool to multiple hosts.var cql =

  • 在使用cqlsh中的CREATE语句时,我得到一个ConfigurationException。cqlsh会话如下:

  • 目前情况: 我通过执行以下命令创建了一个新的Cassandra映像“Cassandra”和一个名为“container-node”的容器: Docker pull Cassandra Docker images grep Cassandra Docker run-d--name cassandra-node--publish 9042:9042 cassandra 连接到容器:docker exe

  • 我猜它看起来是: 因此,本质上,我可以为给定的行拥有一堆时间戳,为一行拥有一个UUID。对于TS列的每次新插入,都需要更新UUID。 所以插入一行就可以了: 我正试图找出如何正确地对数据建模,以便每行只有一个UUID,并且可以有多个列,而不必在表创建期间显式地定义它们,因为它可能会有很大的变化。 IIRC,使用thrift客户机很容易做到这一点,但使用它不是一个选项=/