2017-12-27 3 views

Antwort

2

Es gibt keine Möglichkeit, alle Schlüssel mit einer Anforderung zu erhalten, ohne jeden Knoten im Cluster zu erreichen. In den meisten Cassandra-Treibern ist jedoch ein Paging integriert. Zum Beispiel im Java-Treiber: https://docs.datastax.com/en/developer/java-driver/3.3/manual/paging/

Dies wird weniger Belastung für jeden Knoten, da es nur eine begrenzte Menge von Daten jede Anfrage abruft. Jede weitere Anfrage wird von der letzten fortgesetzt, dh Sie werden jedes Ergebnis für die Anfrage, die Sie machen, berühren.

Edit: Das ist wahrscheinlich das, was Sie wollen: How can I get the primary keys of all records in Cassandra?

+0

können wir nur Schlüssel anfordern - aber es würde erfordern, memtable und mehrere SStables zu scannen, die langsam wären, während alle Zeilenschlüsselinformationen in index.db verfügbar sind. das ist der Grund, warum ich dachte, wenn wir index.db bekommen könnten oder cassandra hatte einen Mechanismus, um Informationen direkt von index.db zu bekommen, das wäre viel schneller? – Aana

+0

Entschuldigung, ich habe die Frage zuerst nicht vollständig verstanden. Siehe Bearbeiten. –

0

Eine mögliche Option, um alle Token Bereiche abfragt werden. Zum Beispiel

SELECT distinct <partn_col_name> FROM <table_name> where token(partn_col_name) >= <from_token_range> and token(partn_col_name) < <to_token_range> 

Mit obiger Abfrage können Sie die alle Partitionsschlüssel innerhalb von bestimmtem Token-Bereich erhalten. Passen Sie die Token-Bereiche abhängig von der Ausführungszeit an.

Verwandte Themen