我已经开始使用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'}
];
现在我尝试使用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
在使用Datastax API时,在上面的表或列系列中?
任何帮助将不胜感激。
无论您使用关键字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
在cassandra键空间或数据库是相同的,像明智的columnfamily和表是相同的。
Cassandra更像是Mysql的语法并支持hql(类似于sql)
cassandra中的表可以创建如下:
CREATE TABLE users (
user_name varchar,
password varchar,
gender varchar,
session_token varchar,
state varchar,
birth_year bigint,
PRIMARY KEY (user_name));
更多信息:Cassandra Tutorials
@ neel4soft - 随着Cassandra事情的发展。因此,为了使人们更容易,一直在进行重命名过程,以便新手更容易从SQL过渡到CQL。然而,CQL不应该被认为是与SQL相关的,而是像它的母亲那样的第三个堂兄,换句话说不是近亲。因此将它与MySQL进行比较是对其功能的不恰当形象。
使用cassandra-cli和cqlsh创建表/列族时几乎没有什么区别。
其中之一是,如果我们创建表格,使用cassandra-cli,它将创建紧凑的存储格式,无法进一步改变。
在cqlsh中,除非我们在创建table / colomn系列时特别提到,否则不会以此格式创建它。