我试图从Erlang R14B02(通过节俭0.6.1)向cassandra 0.7.6插入一些东西
我正在做以下事情:
阅读记录定义
RR(cassandra_types)。
连接到cassandra
{ok,C} = thrift_client_util:new(“localhost”,9160,cassandra_thrift,[{strict_read,false},{strict_write,false},{framed,true}])。
尝试插入一个值(timestamp = 1,2 = Quorum)
Reply1 = thrift_client:call(C,'insert',[“existing_keyspace”,“new_key”,#columnPath {column_family =“existing_column_family”,column =“existing_column”},“new_value”,1,2])。
但是nr3给了我一个bad_args错误(1和2完美地工作)。什么是正确的论点?
答案 0 :(得分:3)
不支持的语言有哪些API信息主要在Cassandra Thrift API documentation。
在Cassandra 0.7中,您不为大多数操作提供键空间,因此insert
只需[Key, ColumnPath, Column, ConsistencyLevel]
。在尝试插入之前,您需要调用set_keyspace
。 erlang中的插入是
Reply1 = thrift_client:call(C, 'insert',
[SomeKey,
#columnPath{column_family = "existing_column_family",
column = "existing_column"},
#column{name="existing_column",
value="new_value",timestamp=1},
?cassandra_ConsistencyLevel_QUORUM]).
您的示例缺少我认为的插入行键。
顺便说一句,请确保始终更新C的值 - 它会在每次thrift_client调用后更改。
?cassandra_ConsistencyLevel_QUORUM从内存中是2。
答案 1 :(得分:0)
这可能会有所帮助,尽管没有特定于erlang的代码:http://wiki.apache.org/cassandra/ThriftExamples