1

我用 cqsql --cql3 shell 创建了这个表:

CREATE TABLE Stats (
 gsd          blob,
 period       int,
 tid          blob,
 sum          int,
 uniques      blob,
PRIMARY KEY(gid, period, tid)
);

我正在使用clj-hector包装库。

我创建了集群和键空间对象:

(def clstr (h/cluster "Test Cluster" "localhost"))

(def ksp (h/keyspace clstr "mks"))

考虑到以前的结构,如何插入新行?如果你不熟悉 clj-hector,Hector 的代码肯定可以工作,我会将它变形为 Clojure。

4

3 回答 3

1

我相信但尚未验证您要插入两列:

row key 是 gsd 的值

一列有一个复合名称,其值为 period,值为 tid 和文字“sum”,其值为 sum

第二列有一个复合名称,其值为 period、tid 值和文字“uniques”,其列值为 uniques

于 2012-06-25T21:27:22.223 回答
0

gid、period、tid 表示为来自 cql 查询的“普通”列。

但是您可能最好使用 datastax/java-driver 或其中一个 clojure 包装器,hector 基于 thrift,并且它仅部分支持 cql3,所以我不确定这是否可行。

无耻插件:看看https://github.com/mpenet/aliahttps://github.com/mpenet/hayt

于 2013-06-04T22:17:16.503 回答
0

您可以参考http://clojurecassandra.info/articles/kv.html这是一个(相当通用的)CQL 操作指南,适用于使用 Cassandra 和 Clojure 的人。您可以使用简单的 CQL 语法,其余的由 C* 内部处理:

INSERT INTO users (gsd, period, tid, sum, uniques) VALUES (?, ?, ?, ?, ?);

对于blob,我强烈建议使用Prepared Statements,实际上:http ://clojurecassandra.info/articles/kv.html#toc_4

如果你愿意,你可以查看 Cassaforte:https ://github.com/clojurewerkz/cassaforte 它很容易启动和运行。

于 2013-06-28T14:01:23.283 回答