繁体   English   中英

如何使用phpcassa获取cassandra中行的所有列名?

[英]How to get all column names of a row in cassandra using phpcassa?

我想在cassandra中获取一行的所有列名,我怎么能在phpcassa中做到这一点?

如果phpcassa不支持它,任何其他语言,libs可以做到吗?

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

你有一个很好的问题。 尝试类似的东西:

$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);

也许它会有所帮助......

你的意思是直接获取名称,只有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]等等......

希望能帮助到你。 抱歉我的英语!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM