Cassandra: Nur EQ und IM Verhältnis unterstützt werden, die auf der partition-key (es sei denn, Sie verwenden das token () - Funktion)
Tabelle :
CREATE TABLE TEST_PAYLOAD
(
TIME_STAMP timestamp,
TYPE text,
PRIMARY KEY (TIME_STAMP)
);
time_stamp | type
--------------------------+----------
2013-05-15 00:00:00-0700 | sometext
2013-05-16 00:00:00-0700 | sometext
2013-05-17 00:00:00-0700 | sometext
SELECT * FROM TEST_PAYLOAD WHERE TIME_STAMP>='2013-05-15 00:00:00-0700';
code=2200 [Invalid query] message="Only EQ and IN relation are supported on the partition key (unless you use the token() function)"
es funktioniert nicht > oder eine beliebige Auswahl, während es funktioniert = so weit-index betroffen ist, hat es nur einen Primärschlüssel gibt es keine partition key.Warum fragt er nach token().
ich Möchte zum abrufen der relativen Reichweite, nur Datum oder Datum mit Zeit nicht bestimmten Zeitstempel existieren in der db.
- BTW, ich kann den Teilergebnis ich.e-spezifische Daten in der db nicht relativ-Bereich, aber noch auf der Suche, warum partition key error kommt .Die folgenden Abfrage beschlossen meine Palette Ausgabe. SELECT * FROM TEST_PAYLOAD WO TOKEN(TIME_STAMP)>=TOKEN('2013-05-15 00:00:00-0700') UND TOKEN(TIME_STAMP)<TOKEN('2013-05-17 00:00:00-0700');
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, Sie sind etwas irritiert über die Cassandra-Terminologie.
Entnehmen Sie bitte hier
partition key: The first column declared in the PRIMARY KEY definition
ie, wenn Sie eine Tabelle erstellen, wie dies
key1
heißt partition key undkey2
,key3
genannt werden clustering Schlüssel.In Ihrem Fall, dass Sie nicht haben, clustering-Schlüssel, so dass die einzelnen primären Taste, die Sie deklariert wurde die partition key.
Auch Bereichsabfragen ( < , >) durchgeführt werden sollte, clustering-Schlüssel.
Wenn Sie haben noch keine anderen Kandidaten für Primärschlüssel, denke ich, sollten Sie renovieren Ihre Tabelle wie diese
Für EIMER können Sie das Jahr oder das Jahr&Monats-Kombination. Damit Ihre Schlüssel Aussehen würde wie diese, 2013, 2014, 06-2014, 10-2014 etc.
So, während Abfragen gehen Sie auf die gewünschte Eimer und tun bereichsscans wie TIME_STAMP >= '2013-05-15 00:00:00-0700'