我在Cassandra的https://github.com/kallaspriit/Cassandra-PHP-Client-Library/中使用了php庫。 儘管我試圖在Web中找到我的問題的答案,但我不能。所以,我想聽聽一些意見。在Cassandra的一個關鍵空間內索引多個屬性
例如,我在考慮以下結構(即列)。
ID,品牌,速度
對於這三個數據,我想這樣做兩種操作:1, 讓所有的ID在卡桑德拉 2.品牌得到所有列,希望通過使用正則表達式。
到目前爲止,我可以通過創建一個名爲「car」的超級列家族來實現第一個「1.獲取Cassandra中的所有ID」。 而且,插入類似下面的數據:
cassandra->set(
$this->columnFamily.'.ID',
array(
$id => array(
'ID' => $id,
'brand' => $brand,
'speed' =>$speed
)
)
);
然後,我可以用下面的代碼獲取ID的所有名單:
cassandra->cf('car')->getAll('ID')
當我試圖做的第二個問題,我被困。 在Web上搜索後,看起來我需要創建另一個超級列族,以便按「品牌」進行搜索。 但是,當我發現那種信息時,問題就出來了。 如果我們創建另一個具有相同結構的超級列族,我覺得它是非常低效的內存。 創建另一個超級列族意味着即使我們創建相同的結構,Cassandra也會創建另一個空間? 如果有任何有效的方法來實現這一點,你可以建議嗎?
而且,這也是非常具體的問題。 getWhere這個php庫的方法可以使用一些條件,例如大於24歲? 預先感謝您。
謝謝,我看了一下。因此,鼓勵在多個地方爲不同目的編寫相同的數據。所以,這表明我是否想要進行兩種搜索(在本例中是id和品牌名稱),我應該創建兩個不同的列族?這是一個合適的方法嗎?我仍然無法擺脫關係的頭腦。 – user2533493
「取決於」的經典案例:) - 當您通過ID搜索時,您是否知道品牌?如果是這樣,您可以使用(品牌,ID)主鍵設置一個表 - 查詢機制將從左到右,以便您可以根據該單個表按品牌,品牌和ID進行搜索。 –