索引Cassandra中一个密钥空间内的多个属性

时间:2013-08-27 17:56:59

标签: php cassandra

我在https://github.com/kallaspriit/Cassandra-PHP-Client-Library/中为Cassandra使用php库。 虽然我试图在网上找到我的问题的答案,但我不能。所以,我想听听一些意见。

例如,我正在考虑以下结构(即列)。

ID,品牌,速度

对于这三个数据,我想做两种操作: 1.获取Cassandra的所有ID 2.按品牌名称获取所有列,希望使用正则表达式。

到目前为止,我可以通过创建一个名为“car”的超级列系列来实现第一个“1.cget在Cassandra中的所有ID”。 并且,插入如下数据:

cassandra->set(
            $this->columnFamily.'.ID',
            array(
                $id => array(
                    'ID' => $id,
                    'brand' => $brand,
                    'speed' =>$speed
                )
            )
        );

然后,我可以通过以下代码获取所有ID列表:

 cassandra->cf('car')->getAll('ID')

当我试着做第二个问题时,我卡住了。 在网上搜索后,看起来我需要创建另一个超级列系列,以便通过“品牌”进行搜索。 但是,当我找到那种信息时,问题出现了。 如果我们创建另一个具有相同结构的超级列族,我觉得它的内存效率非常低。 创建另一个超级列族意味着即使我们创建相同的结构,Cassandra也会创建另一个空间? 如果有任何有效的方法来实现这一点,你能提出这个建议吗?

而且,这也是非常具体的问题。这个php库的getWhere方法可以使用某些条件,例如:大于24岁? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

您正在以关系方式考虑这一点,但Cassandra鼓励我们编写多个数据副本,不支持分组/聚合或连接。

您可能会觉得这很有用; “数据模型已经死了,数据模型也很长。”

http://www.youtube.com/watch?v=px6U2n74q3g