我有一个空白的Cassandra2.1数据存储库,我正在尝试以编程的方式使用Alia和Hayt填充它,使用Clojure中的键空间。它被用作web服务端点后面的数据存储区,用于从客户端接收JSON数据。
我希望能够将传入的数据解析到Clojure实例,稍微更改数据(例如,向映射添加另一个键,值对),并将数据插入数据存储中,以便以后可以作为Clojure实例检索数据。
一切都像我预期的那样工作,除了我无法创建一个适当的列,Cassandra很高兴地将我的Nippy编码的数据放入其中!
我是不是遗漏了什么东西(目前我的代码)?
(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尝试过几乎所有的东西--但是似乎什么都没有用!
任何建议都将感激地接受。
干杯!
发布于 2015-06-26 23:18:57
我不认为:字节是CQL中的有效类型,它应该是:blob。也就是说,在压缩编解码器中有一个bug (它被标记为实验性的)。现在它已经修复了,如果您拉动2.5.2,这应该是有效的:
(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;")(这对海特来说也挺好的)
干杯
https://stackoverflow.com/questions/30463601
复制相似问题