1

Cassandra DB からデータを読み取るためにHectorを使用しています。クエリの例:

ColumnQuery<String, String, String> cq = HFactory.createColumnQuery(KEYSPACE, stringSerializer, stringSerializer, stringSerializer);
cq.setColumnFamily(columnFamily).setKey("Some_Key").setName("Column_Name");
QueryResult<HColumn<String, String>> cqRes = cq.execute();

私が得ている答え (この列の値) は次のようになります。

[45404,2]

私の知る限り、列は名前、値、およびタイムスタンプで構成されています(たとえば、ここで述べたように)。私はこのDBに書き込んでいません。それから読み取るだけです。データスタンプがまったく書き込まれていない可能性はありますか? とにかく、Hector を使用してそれ (タイムスタンプ) をプールする特別な方法はありますか?

4

1 に答える 1

1

列の getClock() メソッドを使用して、タイムスタンプを取得できます。Cassandra では、すべての列にタイムスタンプがあります。(カウンターの場合はより複雑であり、クライアントに公開されません。)

ただし、タイムスタンプは競合の解決に使用され、どの書き込みが優先されるかを確認します。日付フィールドのように扱わないでください。レコードに日付を付けたい場合は、別の日付列を追加してください。その後、解像度、タイムゾーンなどを制御でき、個々の列ではなく行全体を参照できます。

于 2013-08-01T15:20:59.657 に答える