Cassandra CLI:指定主键的名称

时间:2012-04-13 20:59:03

标签: cassandra cql

是否可以通过cassandra CLI指定主键名称,例如via CQL:

create columnfamily test (
  my_key_name varchar primary key,
  value varchar);

默认情况下,cassandra cli会创建名为“KEY”的主键

3 个答案:

答案 0 :(得分:3)

您要查找的属性是key_alias。不幸的是,你目前无法通过cassandra-cli设置它,只有cqlsh。我已经打开CASSANDRA-4158来解决此问题。

答案 1 :(得分:1)

通过CLI创建或更新列族时,可以指定column_metadata以标识类型(验证类)和/或列是否具有索引。 例如,假设您已创建测试列系列,并希望将列 my_key_name 指定为索引的字符串类型:

update column family test
 with column_metadata =
  [
   {column_name: 'my_key_name', validation_class: UTF8Type, index_type: KEYS}
  ];

如果您想稍后删除索引

update column family test with column_metadata = [];

答案 2 :(得分:0)

以下是Datastax网站上与Cassandra 1.1架构相关的博客文章中的CQL示例 http://www.datastax.com/dev/blog/schema-in-cassandra-1-1

CREATE TABLE users (
    id uuid PRIMARY KEY,
    name varchar,
    state varchar
);

我只使用0.7.x,您可以在其中指定密钥的数据类型。以下是来自0.7.6 cassandra-cli“帮助假设;”命令

assume <column_family> keys as <type>;

Assume one of the attributes (comparator, sub_comparator, validator or keys)
of the given column family to match specified type. Available types: bytes, integer, long, lexicaluuid, timeuuid, utf8, ascii.