在Apache-Cassandra 0.8.2中插入JSON字符串

时间:2011-08-12 12:08:09

标签: java json cassandra

任何人都知道在cassandra中插入json字符串的简单方法。 假设我有一个像这样的json字符串:{'key1':'val1','key2':'val2'}

在MongoDB中,我们可以直接插入像dbobj.insert(jsonstring)这样的json字符串; 那么在Cassandra有没有办法做到这一点?(我在java编码)

2 个答案:

答案 0 :(得分:6)

至少有3种方法,但这取决于您要实现的目标以及您希望运行的查询类型。

您可以将JSON字符串存储为纯字符串/字节,作为Cassandra列名称(假设您可以使用某些行作为行键)。但是,您将无法基于JSON内容进行查询;这将是您处理客户端的不透明数据。

您可以在存储之前拆分JSON,以便key1,key2是列名,val1,val2是相应的列值。同样,您需要使用某些东西作为行键。此方法允许您检索单个值,并使用二级索引检索具有特定值的行。

你甚至可以使用key1,key2作为行键,val1,val2作为列名。鉴于你有以JSON分组的key-val对,它们可能属于同一个实体并且是相关的,所以这不太可能有用,但我提到它是为了完整性。

编辑添加:如果您的问题实际上是如何将数据插入Cassandra 的所有,那么您应该阅读Java客户端的文档,例如Hector(还有其他选项)也 - 见http://wiki.apache.org/cassandra/ClientOptions

答案 1 :(得分:0)

你可以试试这个: INSERT INTO用户JSON'{“id”:“user123”,“age”:42,“state”:“TX”}';

参考: http://www.datastax.com/dev/blog/whats-new-in-cassandra-2-2-json-support