【问题标题】:count rows in column family => Cassandra计算列族中的行数 => Cassandra
【发布时间】:2012-01-02 11:40:45
【问题描述】:

您好,我正在为 Ruby on Rails 使用 cassandra-cql gem。

我需要统计所有用户。在我的例子中,用户是用户列族中的行。 用户有(id、first_name、last_name、email) 下面的代码返回一个二进制编码的值。有人知道我如何将正确的计数器值返回为整数吗?

或者是否可以在不获取所有用户的情况下返回最大的 id?在 CQL 中?

或者当我创建索引时是否有任何类型的 index_length?

def self.counter
    count = @@db.execute("SELECT count(*) FROM users")
    count.fetch do |f|
      puts f.row.columns.first.value
    end
  end

【问题讨论】:

    标签: ruby-on-rails cassandra cql


    【解决方案1】:

    在您的代码示例中,您访问的不是您想要的原始 thrift 对象。

    试试这个:

    def self.counter
      count = @@db.execute("SELECT count(*) FROM users")
      count.fetch do |f|
        puts f.column_values.first
        # or
        puts f[0]
      end
    end
    

    也就是说,计算列族中的所有行通常是not a good idea。如果您希望经常执行此查询,则应考虑使用在添加或删除用户时更新的计数器列。

    【讨论】:

    • 感谢您的回答,这正是我所需要的。
    • 你能推荐一个描述 cassandra cql 或更好的 cassandra-cql gem 的网站吗?谢谢
    • 对于一般的 CQL,请查看 reference docs。对于 cassandra-cql gem,您可以查看 gem 的测试(规范)以获取使用示例。
    猜你喜欢
    • 2015-07-25
    • 2010-12-29
    • 2020-01-26
    • 2013-06-08
    • 2012-01-03
    • 1970-01-01
    • 2013-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多