Tôi hiện đang cố gắng để có được đầu của tôi quấn quanh Cassandra/tiết kiệm với Erlang ...Cassandra tiết kiệm Erlang chèn
Tôi có một gia đình Cột có tên là "mq" (như trong hàng đợi thông điệp) ...
Tôi muốn có một hàng cho mỗi người dùng (với user_id), mỗi thông báo sẽ là cột mới có dấu thời gian cho tên và thông báo làm giá trị.
Dưới đây là trong Cassandra-cli gì tôi đang làm:
create keyspace my_keyspace;
use my_keyspace;
create column family mq with comparator=UTF8Type and key_validation_class=UTF8Type;
%% Adding to user_id (00000001) the message "Hello World!"
set mq['00000001']['1336499385041308'] = 'Hello Wold';
Tất cả mọi thứ hoạt động tốt với Cassandra-cli
Tuy nhiên, Khi tôi đang cố gắng để chèn từ Erlang, tôi chạy vào một số vấn đề:
1>rr(cassandra_types).
2>{ok, C}=thrift_client_util:new("localhost", 9160, cassandra_thrift,[{framed, true}]).
3>thrift_client:call(C, 'set_keyspace', ["peeem"]).
4>thrift_client:call(C,'insert',["00000001",
#columnPath{column_family="mq"},
#column{name="1336499385041308", value="Hello World!"},
1
]
).
Dưới đây là các lỗi:
{error,{bad_args,insert,
["00000001",
#columnPath{column_family = "mq",super_column = undefined,
column = undefined},
#column{name = "1336499385041308",value = "Hello World!",
timestamp = undefined,ttl = undefined},1]}}}
Bất kỳ trợ giúp sẽ được đánh giá cao ...
EDIT 1:
Tôi đã phát hiện ra rằng nó nên được (vì nó làm việc cho người khác):
thrift_client:call(C,'insert', ["00000001", #columnParent{column_family="mq"}, #column{name="123456",value="Hello World!"}, 2]).
Đây là thông báo lỗi có liên quan:
** exception error: no match of right hand side value {{protocol,thrift_binary_protocol,
{binary_protocol,{transport,thrift_framed_transport,
{framed_transport,{transport,thrift_socket_transport,
{data,#Port<0.730>,infinity}},
[],[]}},
true,true}},
{error,closed}}
in function thrift_client:send_function_call/3 (src/thrift_client.erl, line 83)
in call from thrift_client:call/3 (src/thrift_client.erl, line 40)
Xin chào và cảm ơn câu trả lời của bạn. Tôi đã nhận thức được erlcassa, đang sử dụng CQL. Thật không may CQL ngày nay không phù hợp với nhu cầu của tôi, nó là khá hạn chế tại thời điểm chúng tôi đang nói chuyện. Ví dụ: có vẻ như không chèn các cột chưa được mô tả trong siêu dữ liệu gia đình cột. Vì vậy, mô hình dữ liệu của tôi sẽ chèn một cột mới cho mỗi hàng cho mỗi tin nhắn là không khả thi với CQL. – TheSquad