Как получить все столбцы для всех совпадающих строк с помощью Perl Net :: Cassandra :: Easy? - PullRequest
2 голосов
/ 22 марта 2010

При использовании Perl Net::Cassandra::Easy следующий код извлечет столбцы col[1-3] из строк row[1-3]:

$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 });

Это работает до тех пор, пока количество столбцов не превышает миллион. Хотя это работает, я предполагаю, что есть более чистый способ сделать это. Есть ли более чистый способ указать Кассандре, что я хочу получить все столбцы для совпадающих строк?

1 Ответ

3 голосов
/ 23 марта 2010

Как насчет

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

standard => 1 заставит Net :: Cassandra :: Easy использовать предикат среза, который соответствует всем столбцам в семействе.

...