从erlang插入cassandra
我试图从Erlang R14B02(通过thrift 0.6.1)向cassandra 0.7.6中插入一些内容 我正在做以下工作:从erlang插入cassandra,erlang,cassandra,thrift,Erlang,Cassandra,Thrift,我试图从Erlang R14B02(通过thrift 0.6.1)向cassandra 0.7.6中插入一些内容 我正在做以下工作: 读取记录定义 rr(卡桑德拉型) 连接到卡桑德拉 {ok,C}=thrift_client_util:new(“localhost”,9160,cassandra_thrift,[{strict_read,false},{strict_write,false},{framed,true}]) 尝试插入一个值(时间戳=1,2=Quorum) Reply1=thrif
但是nr3给了我一个错误(1和2工作得很好)。正确的参数是什么?这可能会有所帮助,尽管没有特定于erlang的代码:不支持的语言的API信息主要在它们的语言中 在Cassandra 0.7中,大多数操作都不提供键空间,因此
insert
只需要[Key,ColumnPath,Column,consistentylevel]
。在尝试插入之前,需要调用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_客户端调用后都会发生变化
?cassandra_ConsistencyLevel_QUORUM是内存中的2。Ups,我忘了,很抱歉,editedI的参数仍然不好。。。在您的通话中,列名被给出了两次,对吗?。我的行键是“new_key”,以防有人遇到同样的问题,这对我来说是有效的:{C22,{u}=thrift_客户端:call(C21,'insert',[“test_key”,“test_key”,“columnParent{column_family=“exiting_CF”},{column{name=“exiting_column”,value=“new u val”,timestamp=1},2])。BTW。erlang/thrift/cassandra的最佳文档是生成的erlang代码。至少你可以看到你有什么功能。