【问题标题】:How to get all column names of a row in cassandra using phpcassa?如何使用phpcassa获取cassandra中一行的所有列名?
【发布时间】:2012-09-04 00:01:21
【问题描述】:

我想在 cassandra 中获取一行的所有列名,如何在 phpcassa 中完成?

如果phpcassa不支持,还有其他语言,libs可以吗?

在我的例子中,列名很短,但行很长(大约 1000+),数据很大(大约 100K)

【问题讨论】:

    标签: php cassandra phpcassa


    【解决方案1】:

    你有一个很好的问题。试试这样的:

    $pool = new ConnectionPool('feed', array('127.0.0.1'));
    $raw = $pool->get();
    $rows = $raw->client->execute_cql_query("SELECT * FROM posts", cassandra_Compression::NONE);
    var_dump($rows);
    

    也许会有所帮助...

    【讨论】:

      【解决方案2】:

      您的意思是直接使用 phpCassa 获取名称吗?我不知道有什么方法可以直接做到这一点,但我曾经通过获取所有行然后对列族中的数组执行 foreach 循环来做到这一点,如下所示:

      1.- 一个可以随处使用的小功能(如果需要,可以自己构建;)):

      function f_get_data_as_array($p_pool, $p_cf, $p_key, $p_col_count = 100, $p_column_names = NULL, $p_range_start = '', $p_range_end = '', $p_inverted_sort = false)
      {
          try{
              $lv_slice = new ColumnSlice($p_range_start, $p_range_end, $p_col_count, p_inverted_sort);
              $lv_cf =    new ColumnFamily($p_pool, $p_cf);
              $lv_cf->insert_format = ColumnFamily::ARRAY_FORMAT;
              $lv_cf->return_format = ColumnFamily::ARRAY_FORMAT;         
              $lv_result = $lv_cf->get($p_key, $lv_slice, $p_column_names);
          }catch(Exception $lv_e)
          {
              return false;   
          }
          return $lv_result;
      

      2.- 我使用前四个参数调用它,设置池、列族名称、我需要的键和我想要获取的列数(根据需要设置数字)。

      3.- 对返回的数组进行 foreach 循环以获取每个列名。或者,如果您知道从列族中获得的结构,您只需要使用正确的索引,可能是:$lv_result[0][0]、$lv_result[0][1] 等等...

      希望对您有所帮助。对不起我的英语!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-02-17
        • 2013-12-24
        • 2013-06-21
        • 2014-04-27
        • 2014-07-07
        • 2016-08-17
        • 1970-01-01
        相关资源
        最近更新 更多