Cassandra CLI使用主键创建列族

时间:2013-11-22 02:48:37

标签: cassandra cassandra-cli

我正在尝试在Cassandra CLI Version 1.1.6中创建一个列系列,我不知道如何将主键指定为movieid。

CREATE COLUMN FAMILY movies
WITH comparator = UTF8Type
AND key_validation_class=UTF8Type
AND column_metadata = [
{column_name: movieid, validation_class: UTF8Type}
{column_name: title, validation_class: UTF8Type}
{column_name: genres, validation_class: UTF8Type}];

1 个答案:

答案 0 :(得分:4)

通过CLI创建列族不会创建您必须坚持的架构。这取决于您如何插入数据,即定义主键的方式。当您通过CLi创建列族时,您只需要定义主键将包含哪种值,即它是字符串(UTF8Type),int(IntegerType)等。

您也无法通过CLI实际获得KEY列的别名(也就是表中的主键)。你have to use CQL for that。如果你想要定义的模式和结构化查询而不是使用宽行,你应该定位更新版本的cassandra(为什么现在1.2.x?)并使用CLQ3。

更直观地表达我的意思,你的cassandra-cli语句在从cqlsh通过describe table命令查看时创建了这个:

CREATE TABLE movies (
  KEY text PRIMARY KEY,    <------- pk 
  genres text,
  title text,
  movieid text
) WITH // and a bunch of cf options

但这并不意味着您无法插入另一个未定义的列,因为thrift并不真正关心CF的架构。