首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用phpcassa排序的multiget

使用phpcassa排序的multiget
EN

Stack Overflow用户
提问于 2012-09-27 17:57:19
回答 1查看 354关注 0票数 0

我在cassandra中有一个键空间,它有一个列族(设A),它有一个组合键,另一个列族(设B),我存储了A列族中存在的确切行数。当我使用multiget获取数据时,它没有给出实际的排序数据。

代码语言:javascript
复制
A: [1] = 13;

B:
   [6014:2:0] = "aaaaaa";
   [6014:2:1] = "bbbbbb";
   [6014:2:2] = "cccccc";
   [6014:2:3] = "dddddd";
   [6014:2:4] = "eeeeee";
   [6014:2:5] = "ffffff";
   [6014:2:6] = "gggggg";
   [6014:2:7] = "hhhhhh";
   [6014:2:8] = "iiiiii";
   [6014:2:9] = "jjjjjj";
   [6014:2:10] = "kkkkkkk";
   [6014:2:11] = "lllllll";
   [6014:2:12] = "mmmmmmm";

我的代码

代码语言:javascript
复制
require_once(__DIR__.'/phpcassa/lib/autoload.php');
use phpcassa\Connection\ConnectionPool;
use phpcassa\ColumnFamily;
use phpcassa\SystemManager;
use phpcassa\Schema\StrategyClass;

$connection = new ConnectionPool('KEYSPACE', array('XXXX', 'YYYY', 'ZZZZ'));
$numDtls = new ColumnFamily($connection, 'A');
$key = 1;
$num_details = $numDtls->get($key);
$num = $num_details;

$json = '';
$key_array = array();
if(isset($num)){
    $str = new ColumnFamily($connection, 'B');
    for($i = 0;$i <= $num; $i++){
        $key_array[] = array($table, $flag, $i);
    }

    $detail = $str->multiget($key_array);
    $json = json_encode($detail);
}

它给出的输出为

代码语言:javascript
复制
6014:2:0
6014:2:6
6014:2:9
6014:2:11
6014:2:4
6014:2:1
6014:2:12
6014:2:8
6014:2:7
6014:2:10
6014:2:3
6014:2:5
6014:2:2

它以混乱的顺序给出输出...如何以排序的方式获取?以及如何获得超过100行?

EN

回答 1

Stack Overflow用户

发布于 2012-09-29 03:20:57

Multiget不保证订购,句号停止。至于如何获得超过100行...你问错了问题,大型多目标是一种反模式。你需要去规格化,这样你就可以用一个单独的切片获得你想要的数据。在这里查看我的“时间线”示例:http://www.datastax.com/dev/blog/schema-in-cassandra-1-1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12618737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档