При использовании в Perl Net::Cassandra::Easy
следующий код будет извлекать столбцы col[1-3]
из рядов row[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 });
Это работает до тех пор, как число столбцов не превышает одного миллиона. Хотя это работает, я бы предположил, что есть более чистый способ сделать это. Есть ли более чистый способ указать Кассандре, что я хочу получить все столбцы для соответствующих строк?
Не знаком с Cassandra, но вы не могли бы выполнить запрос раньше, чтобы получить структуру таблицы, чтобы вы знали, сколько столбцов доступно? – zigdon
Удивительно, если разработчик, который сделал это, имел бывшую названную Cassandra, что ему не понравилось слишком много ... – Zoidberg
zigdon: Nope :-) «Структура таблицы» в Кассандре динамична в том смысле, что одна строка может сказать пять столбцов, тогда как в следующей строке указано сорок столбцов. – knorv