我在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岁? 提前谢谢。
答案 0 :(得分:0)
您正在以关系方式考虑这一点,但Cassandra鼓励我们编写多个数据副本,不支持分组/聚合或连接。
您可能会觉得这很有用; “数据模型已经死了,数据模型也很长。”