我用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。
答案 0 :(得分:1)
我相信,但尚未验证,您要插入两列:
行键是gsd
的值一列有一个复合名称,其值为period,值为tid和literal" sum"列值为和
第二列有一个复合名称,其值为period,值为tid,以及文字" uniques"列值为唯一的
答案 1 :(得分:0)
gid,句点,tid表示为"正常"来自cql查询的列。
但你可能最好使用datastax / java-driver或其中一个clojure包装器,hector基于thrift,它只对cql3有部分支持所以我不确定这是否会工作
无耻插件:查看https://github.com/mpenet/alia和https://github.com/mpenet/hayt
答案 2 :(得分: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 启动并运行它非常容易。