首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Alia/Hayt编程生成Clojure类型的Cassandra CQL

使用Alia/Hayt编程生成Clojure类型的Cassandra CQL
EN

Stack Overflow用户
提问于 2015-05-26 16:04:24
回答 1查看 998关注 0票数 0

我有一个空白的Cassandra2.1数据存储库,我正在尝试以编程的方式使用Alia和Hayt填充它,使用Clojure中的键空间。它被用作web服务端点后面的数据存储区,用于从客户端接收JSON数据。

我希望能够将传入的数据解析到Clojure实例,稍微更改数据(例如,向映射添加另一个键,值对),并将数据插入数据存储中,以便以后可以作为Clojure实例检索数据。

一切都像我预期的那样工作,除了我无法创建一个适当的列,Cassandra很高兴地将我的Nippy编码的数据放入其中!

我是不是遗漏了什么东西(目前我的代码)?

代码语言:javascript
复制
(def alia-cluster (cluster {:contact-points ["127.0.0.1"]}))

(def session (connect alia-cluster))

(execute session
         (create-keyspace :ks
                          (if-not-exists)
                          (with {:replication {:class "SimpleStrategy"
                                               :replication_factor 1}})))

(execute session
         (use-keyspace :ks))

(execute session
         (create-table :d
                       (if-not-exists)
                       (column-definitions [[:k :XXXXX]
                                            [:primary-key :k]])))

(set-nippy-collection-encoder!)

(set-nippy-decoder!)

我在XXXX尝试过几乎所有的东西--但是似乎什么都没有用!

任何建议都将感激地接受。

干杯!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-26 23:18:57

我不认为:字节是CQL中的有效类型,它应该是:blob。也就是说,在压缩编解码器中有一个bug (它被标记为实验性的)。现在它已经修复了,如果您拉动2.5.2,这应该是有效的:

代码语言:javascript
复制
(use 'qbits.alia)
(use 'qbits.alia.codec.nippy)

(def c (cluster {:contact-points ["localhost"]}))
(def s (connect c))

(set-nippy-decoder!)
(set-nippy-collection-encoder!)

(execute s "use ks;")
(execute s "insert into d (k) values (?);" {:values [[1 2 3]]})
(execute s "select * from d;")

(这对海特来说也挺好的)

干杯

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30463601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档