Cassandra / Pycassa: Zufällige Zeilen

Gibt es eine Möglichkeit, zufällige Zeilen aus Cassandra abzurufen (mit Python / Pycassa)?

Update: Bei zufälligen Zeilen meine ich zufällig ausgewählte Zeilen!

3 Solutions collect form web for “Cassandra / Pycassa: Zufällige Zeilen”

Sie können dies tun, indem Sie eine get_range Anfrage mit einem zufälligen start (nur eine zufällige Zeichenfolge) und eine row_count von 1.

Aus dem Gedächtnis, denke ich, dass der Zielschlüssel das gleiche sein muss wie der start , so dass die Abfrage "umschlingt" den Schlüsselraum; Dies würde normalerweise alle Zeilen zurückgeben, aber das row_count wird das beschränken.

Habe es nicht ausprobiert, aber das sollte sicher sein, dass du ein einziges Ergebnis bekommst, ohne genaue Zeilentasten kennen zu müssen.

Nicht sicher, was du mit zufälligen Zeilen meinst. Wenn du zufällige Zugriffszeilen meinst, dann kannst du es ganz einfach machen:

 import pycassa.pool import pycassa.columnfamily pool = pycassa.pool.ConnectionPool('keyspace', ['localhost:9160'] cf = pycassa.columnfamily.ColumnFamily(pool, 'cfname') row = cf.get('row_key') 

Das gibt dir eine Reihe. Wenn du meinst, dass du eine zufällig ausgewählte Zeile willst, glaube ich nicht, dass du das sehr leicht machen kannst, ohne zu wissen, was die Schlüssel sind. Sie könnten eine Indexzeile generieren und dann eine zufällige Spalte aus diesem auswählen und diese verwenden, um eine Zeile aus einer anderen Spaltenfamilie zu ergreifen. Grundsätzlich müssten Sie eine neue Zeile erstellen, in der jeder Spaltenwert ein Zeilenschlüssel aus der Spaltenfamilie war, von dem aus Sie eine Zeile auswählen möchten. Dann könntest du eine Spalte zufällig aus dieser Reihe packen und du hast den Schlüssel zu einer zufälligen Zeile.

Ich glaube nicht, dass pycassa irgendeine Unterstützung anbietet, um eine zufällige, nicht indizierte Reihe zu ergreifen.

Das funktioniert für meinen Fall:

 ini = random.randint(0, 999999999) rows = col_fam.get_range(str(ini), row_count=1, column_count=0,filter_empty=False) 

Du musst dich an deine Zeilentastatur anpassen (String in meinem Fall)

Python ist die beste Programmiersprache der Welt.