在使用Datastax API(使用新的二进制协议)时在Cassandra中创建列族或表

ars*_*nal 5 cql command-line-interface cassandra cql3

我已经开始使用Cassandra数据库了.我打算使用Datastax API来插入/读取cassandra数据库.我对这个Datastax API(使用新的二进制协议)完全不熟悉,我也找不到很多文档,它们都有一些正确的例子.

当我使用Netflix客户端(Astyanax客户端)使用Cassandra CLI时,我创建了这样的列族 -

create column family profile
with key_validation_class = 'UTF8Type'
and comparator = 'UTF8Type'
and default_validation_class = 'UTF8Type'
and column_metadata = [
  {column_name : crd, validation_class : 'DateType'}
  {column_name : lmd, validation_class : 'DateType'}
  {column_name : account, validation_class : 'UTF8Type'}
  {column_name : advertising, validation_class : 'UTF8Type'}
  {column_name : behavior, validation_class : 'UTF8Type'}
  {column_name : info, validation_class : 'UTF8Type'}
  ];
Run Code Online (Sandbox Code Playgroud)

现在我尝试使用Datastax API做同样的事情.因此,要开始使用Datastax API,我是否需要以上述不同的方式创建列族?或者,只要我尝试使用Datastax API将数据插入Cassandra数据库,上面的列familiy就可以正常工作.

如果以上栏目系列不起作用,则─

首先,我创建了如下所示的KEYSPACE-

CREATE KEYSPACE USERS WITH strategy_class = 'SimpleStrategy' AND strategy_options:replication_factor = '1';

现在我混淆了如何创建表格?我不确定哪种方法是正确的?

我应该这样创作吗?

CREATE TABLE profile ( id varchar, account varchar, advertising varchar, behavior varchar, info varchar, PRIMARY KEY (id) );

或者我应该这样创作?

CREATE COLUMN FAMILY profile ( id varchar, account varchar, advertising varchar, behavior varchar, info varchar, PRIMARY KEY (id) );

以及如何添加 -

crd as DateType
lmd as DateType
Run Code Online (Sandbox Code Playgroud)

在使用Datastax API时,在上面的表或列系列中?

任何帮助将不胜感激.

abh*_*bhi 13

无论您使用关键字TABLE还是COLUMNFAMILY,两者都是相同的(同义词).我猜关键字TABLE是用CQL3引入的.所以你可以在你的陈述中使用任何一个.

第二个问题,添加DateType,你应该使用时间戳.

CREATE COLUMNFAMILY sample (rowkey text, ts timestamp, PRIMARY KEY(rowkey));

INSERT INTO sample (rowkey, ts ) VALUES ( '1','1366354711797');
// ts value is basically the System.currentTimeMillis(), I mean a long value
Run Code Online (Sandbox Code Playgroud)

  • 谢谢。varchar 和 text 有什么区别?我的大部分列都需要字符串数据类型。那么在这种情况下我应该使用 varchar 还是 text 呢? (2认同)