2013-08-15 15 views
9

私はCassandraでSELECT DISTINCTにしたいですが、Cassandraはこれらの操作をサポートしていないと思います。 CassandraでSELECT DISTINCTをどうすればいいですか?出来ますか?cassandraでDISTINCTを選択する方法

答えて

1

CQL 3.1.1より前の、cassandraで異なる値を選択することはできません。

旧バージョンのCassandraをお使いの場合は、その機能をアプリケーションに実装する必要があります。このフィーチャの実装をリクエストするにはJIRA ticketを作成することができますが、非正規化データモデルに対するcassandraのバイアスのために、この機能は頻繁に使用されないようです。

非常に大きな分散クラスタで一意の行を見つける必要があるとします。

+0

返信いただきありがとうございます... –

15

CQL 3.1.1以降は、パーティションキーに対してのみDISTINCT操作をサポートします。

SELECTステートメントでは、パーティションキーの一覧表示が可能になりました( DISTINCT修飾子を使用)。 CASSANDRA-4536を参照してください。

0

他の人が書いているように、Cassandraの個別の列はサポートされていません。主キーのみです。カサンドラでこれを行うには つのオプション:アプリケーション内の

  1. プロセス - サーバーから表全体を読んで、コードの中で明確なをやってロードする必要があります。
  2. キーが区別したい列であるセカンダリ・テーブルを作成し、元のテーブルで操作を実行するときにそのキーを2回挿入します。

テーブルサイズが小さい場合やこの操作をほとんど行わない場合は、テーブルが大きい場合はオプション1で十分で高速になりますが、そして/またはあなたはこの質問を多くの時間#2で行うことになります。

関連する問題