无法使用Cassandra计数器柱与cassandra宝石

时间:2013-05-06 10:15:13

标签: ruby cassandra cql

我已经使用cqlsh:

通过以下命令创建了一个列族
create table mystats (key PRIMARY KEY, count counter);

现在从cqlsh我可以增加计数器列但是当我尝试从cassandra gem执行此操作时,如下所述: Are there any Ruby clients for Cassandra with counters and supercolumn?

所以当我使用:

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

我收到错误:

  

/ client的Cassandra :: AccessError无效的列族“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

任何人都可以请指出我在这里做错了什么..

1 个答案:

答案 0 :(得分:5)

该客户端尚未更新以支持CQL3。我不知道一个支持CQL3的Ruby客户端,所以最好的办法是创建一个与Thrift兼容的表(TLDR将WITH COMPACT STORAGE添加到你的表定义中。)