1

我使用 cqlsh 通过以下命令创建了一个列族:

create table mystats (key PRIMARY KEY, count counter);

现在从 cqlsh 我可以增加计数器列但是当我尝试从 cassandra gem 执行此操作时,如建议: 是否有任何带有计数器和超级列的 Cassandra Ruby 客户端?

所以当我使用:

@stats.add(:mystats, 'randomkey', 1, 'count')

我收到一个错误:

Cassandra::AccessError at /client 无效的列族“mystats”

当我进一步研究它时,我发现错误是从 gem 中引发的:在文件中:https ://github.com/twitter/cassandra/blob/master/lib/cassandra/columns.rb

def column_family_property(column_family, key)
      cfdef = schema.cf_defs.find {|cfdef| cfdef.name == column_family }
      unless cfdef
        raise AccessError, "Invalid column family \"#{column_family}\""
      end
      cfdef.send(key)
    end

谁能指出我在这里可能做错了什么..

4

1 回答 1

5

该客户端尚未更新以支持 CQL3。我不知道支持 CQL3 的 Ruby 客户端,因此您最好的选择可能是创建一个与 Thrift 兼容的表(TLDR 添加WITH COMPACT STORAGE到您的表定义中)。

于 2013-05-06T14:57:48.713 回答