2 Stimmen

Wie kann ich mit Perl's Net::Cassandra::Easy alle Spalten für alle passenden Zeilen abrufen?

Bei der Verwendung von Perl's Net::Cassandra::Easy der folgende Code ruft die Spalten ab col[1-3] aus Reihen row[1-3] :

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

Die entsprechende SQL würde lauten:

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

Nehmen wir stattdessen an, dass ich alle Spalten abrufen möchte. In SQL-Begriffen wäre das so:

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

Um alle Spalten zu erhalten, verwende ich derzeit:

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

Dies funktioniert, solange die Anzahl der Spalten eine Million nicht übersteigt. Obwohl dies funktioniert, nehme ich an, dass es einen saubereren Weg gibt, dies zu tun. Gibt es eine sauberere Möglichkeit, Cassandra mitzuteilen, dass ich alle Spalten für die übereinstimmenden Zeilen abrufen möchte?

3voto

rjh Punkte 47430

Wie wäre es mit

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

standard => 1 erzwingt Net::Cassandra::Easy die Verwendung eines Slice-Prädikats, das auf alle Spalten der Familie passt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X