【问题标题】:Cassandra CLI: specify name of primary keyCassandra CLI:指定主键的名称
【发布时间】:2012-04-17 11:19:59
【问题描述】:

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

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

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

【问题讨论】:

    标签: cassandra cql


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      通过 CLI 创建或更新列族时,您可以指定 column_metadata 以标识类型(验证类)和/或列是否具有索引。 例如,假设您创建了 test 列族,并希望将列 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 = [];
      

      【讨论】:

        【解决方案3】:

        这是 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.
        

        【讨论】:

          猜你喜欢
          • 2013-08-27
          • 2013-12-06
          • 2012-11-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-03-13
          • 2020-03-30
          • 1970-01-01
          相关资源
          最近更新 更多