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!

  • Warum ist meine Dateneinfügung in meiner Cassandra Datenbank manchmal stabil und manchmal langsam?
  • Beiz-Fehler beim Ausführen des COPY-Befehls: CQLShell unter Windows
  • Cassandra: "Kann die Operation nicht gegen alle Hosts abschließen" während session.execute ()
  • Cqlsh Verbindungsfehler: 'ref () nimmt keine Keyword-Argumente'
  • Wie kann ich ein Superuser-Account auf Cassandra mit Homebrew erstellen?
  • Unkonfigurierter Spaltenfamiliefehler bei aufeinanderfolgenden Execute-Anrufen (CQL)
  • Entkommen html in python
  • Wie man \ backslash vor Zitate in String Python einfügen
  • Wann sollte ich in Djangos Schablonensystem entkommen und sicher sein?
  • Simplejson.loads () erhalten Invalid \ Escape: 'x'
  • Escaping Zitate in bash Befehl mit Subprocess Call und shlex
  • Erlaube <br> Tags mit Google App Engine und Jinja2
  • 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.