Nel tentativo di rispondere alle vostre domande, ho fatto un po 'scavando su questo.
- Cassandra acquisisce microsecondi con tipo di data/ora?
microsecondi no, millisecondi si. Se creo il vostro tavolo, inserire una riga, e cercare di eseguire una query per il momento in tronco, non funziona:
[email protected]:stackoverflow> INSERT INTO data (datetime, id, type, data)
VALUES ('2015-02-16T18:00:03.234+00:00','B26354','Blade Runner','Deckard- Filed and monitored.');
[email protected]:stackoverflow> SELECT * FROM data
WHERE id='B26354' AND type='Blade Runner' AND datetime='2015-02-16 12:00:03-0600';
id | type | datetime | data
----+------+----------+------
(0 rows)
Ma quando ho interrogare per gli stessi id
e type
valori precisando millisecondi:
[email protected]:stackoverflow> SELECT * FROM data
WHERE id='B26354' AND type='Blade Runner' AND datetime='2015-02-16 12:00:03.234-0600';
id | type | datetime | data
--------+--------------+--------------------------+-------------------------------
B26354 | Blade Runner | 2015-02-16 12:00:03-0600 | Deckard- Filed and monitored.
(1 rows)
Quindi i millisecondi sono decisamente lì. È stato creato un ticket JIRA per questo numero (CASSANDRA-5870), ma è stato risolto come "Non risolverà".
- Come posso verificarlo con cqlsh?
Un possibile modo per verificare effettivamente che i millisecondi sono effettivamente lì, vale a nido funzione timestampAsBlob()
interno blobAsBigint()
, in questo modo:
[email protected]:stackoverflow> SELECT id, type, blobAsBigint(timestampAsBlob(datetime)),
data FROM data;
id | type | blobAsBigint(timestampAsBlob(datetime)) | data
--------+--------------+-----------------------------------------+-------------------------------
B26354 | Blade Runner | 1424109603234 | Deckard- Filed and monitored.
(1 rows)
Pur non ottimale, qui si può chiaramente vedere millisecondo valore di "234" alla fine. Questo diventa ancora più evidente se si aggiunge una riga per la stessa data e ora, ma senza millisecondi:
[email protected]:stackoverflow> INSERT INTO data (id, type, datetime, data)
VALUES ('B25881','Blade Runner','2015-02-16T18:00:03+00:00','Holden- Fine as long as nobody unplugs him.');
[email protected]:stackoverflow> SELECT id, type, blobAsBigint(timestampAsBlob(datetime)),
... data FROM data;
id | type | blobAsBigint(timestampAsBlob(datetime)) | data
--------+--------------+-----------------------------------------+---------------------------------------------
B25881 | Blade Runner | 1424109603000 | Holden- Fine as long as nobody unplugs him.
B26354 | Blade Runner | 1424109603234 | Deckard- Filed and monitored.
(2 rows)
Puoi modificare il tuo post con la definizione della tabella, 'INSERT' e' SELECT' query? Non ne sono sicuro fino a quando non vedo queste informazioni, ma il problema potrebbe essere correlato a questo: http://stackoverflow.com/questions/26237940/cassandra-cql-select-query-not-returning-records-which- have-timestamp-as-cluster/ – Aaron
Ho appena aggiornato il mio post come richiesto. Fammi sapere se questo non è abbastanza chiaro. Grazie. – WillZ