2010-03-22 59 views
2

當使用Perl的Net::Cassandra::Easy下面的代碼將行row[1-3]檢索列col[1-3]如何使用Perl的Net :: Cassandra :: Easy檢索所有匹配行的所有列?

$result = $cassandra->get(['row1', 'row2', 'row3'], family => 'Standard1', byname => ['col1', 'col2', 'col3'); 

對應的SQL將是:

SELECT col1, col2, col3 FROM rows WHERE id IN ('row1', 'row2', 'row3'); 

假設而不是我想要檢索的所有列。在SQL而言,這將是:

SELECT * FROM rows WHERE id IN ('row1', 'row2', 'row3'); 

爲了得到我目前使用的所有列:

$result = $cassandra->get(['row1', 'row2', 'row3'], family => 'Standard1', byoffset => { "count" => 1_000_000 }); 

這隻要可以作爲列數不超過100萬人次。雖然這工作,我會假設有一個更乾淨的方式來做到這一點。有沒有更清晰的方式來指定Cassandra我想檢索匹配行的所有列?

+0

對Cassandra不熟悉,但是不能先運行查詢來獲取表結構,那麼您將知道有多少列可用? – zigdon 2010-03-22 19:38:43

+0

不知道如果開發人員做了這個有一個名爲卡桑德拉,他不喜歡太多... – Zoidberg 2010-03-22 19:41:09

+0

zigdon:不能:-)卡桑德拉的「表結構」是動態的,一行可以說有五個而下一行有四十列。 – knorv 2010-03-22 19:44:41

回答

3

如何

$result = $cassandra->get(['row1', 'row2', 'row3'], family => 'Standard1', standard => 1); 

standard => 1將迫使網::卡桑德拉::易於使用的匹配在家庭中的所有列片謂詞。

+0

非常好!正是我在找什麼!謝謝! – knorv 2010-03-23 11:30:34

相關問題