特定の物理ノードでは、特定のパーティションキーの行がクラスタリングキーによって誘導された順序で格納され、そのクラスタリング順序の行の検索が特に効率的になります。 http://cassandra.apache.org/doc/cql3/CQL.html#createTableStmtクラスタ化キーによってどのような順序付けが誘導されますか?Cassandraのクラスタリングキー
18
A
答えて
34
あなたのクラスタリング・キーがKiはi番目のキー名とtiはi番目のキータイプである
k1 t1, k2 t2, ..., kn tn
あると仮定します。次に、注文データは辞書順に格納され、各次元はそのタイプのコンパレータを使用して比較されます。
だから(A1、A2、...、)<(B1、B2、...、BN)であれば、T1のコンパレータを用いて< B1 A1、又はA1 = B1とT2のコンパレータを使用してA2 < B2、または(
これは、データが一緒に格納されるため、特定のk1 = aを持つすべての行を見つけることが効率的であることを意味します。しかし、i> 1に対してki = xを持つすべての行を見つけるのは効率的ではありません。実際には、このようなクエリは許可されていません - 唯一のクラスタ化キー制約では、 。
次を挿入しなかった場合たとえば、スキーマに
create table clustering (
x text,
k1 text,
k2 int,
k3 timestamp,
y text,
primary key (x, k1, k2, k3)
);
を考慮してください。
insert into clustering (x, k1, k2, k3, y) values ('x', 'a', 1, '2013-09-10 14:00+0000', '1');
insert into clustering (x, k1, k2, k3, y) values ('x', 'b', 1, '2013-09-10 13:00+0000', '1');
insert into clustering (x, k1, k2, k3, y) values ('x', 'a', 2, '2013-09-10 13:00+0000', '1');
insert into clustering (x, k1, k2, k3, y) values ('x', 'b', 1, '2013-09-10 14:00+0000', '1');
を、それらがディスク上の順(順select * from clustering where x = 'x'
リターン)に格納されています。
x | k1 | k2 | k3 | y
---+----+----+--------------------------+---
x | a | 1 | 2013-09-10 14:00:00+0000 | 1
x | a | 2 | 2013-09-10 13:00:00+0000 | 1
x | b | 1 | 2013-09-10 13:00:00+0000 | 1
x | b | 1 | 2013-09-10 14:00:00+0000 | 1
注文が支配的な場合、k2
、次にk3
。
関連する問題
- 1. クラスタリングキーのないCassandraプライマリキー
- 2. Spark Cassandraコネクタがクラスタリングキーで結合する
- 3. Cassandra - クラスタリングキーが指定されていない場合の内部データストレージ
- 4. なぜCassandraはIN制限でクラスタリングキーをクエリできないのですか?
- 5. cassandraはパーティションキーとクラスタリングキーで特定の行をどのように読み取るのですか
- 6. Cassandraがテーブル内に主キーのみを指定する場合のクラスタリングキーの選択方法
- 7. カサンドラ:セカンダリインデックスとクラスタリングキーを持つクエリは
- 8. カサンドラどのようにテーブルにクラスタリングキーを追加するには?
- 9. Cassandraの各クラスタリングキーの最後の2レコードを取得するには、スキーマをどのように設計する必要がありますか?
- 10. spark-cassandraのspark-cassandraコネクタとの統合
- 11. Apache CassandraまたはDataStax Cassandra?
- 12. Cassandra 1.0のパフォーマンス
- 13. JAVAのCassandraエラー
- 14. Cassandraデータストアのサイズ
- 15. cassandraのカウンターテーブル
- 16. Cassandraのクエリーパーサー
- 17. CassandraのCQLログインエラー
- 18. デュアルコアマシンのCassandra
- 19. IntellijのCassandraプラグイン
- 20. Cassandraのストレステスト
- 21. cassandraの更新
- 22. Cassandraのマルチは、
- 23. Cassandraネイティブバイナリプロトコルのパフォーマンス
- 24. Cassandra NoHostAvailable:CQLSHのエラー
- 25. SparkスカラCassandra CSVをcassandraに挿入
- 26. cassandra 1.0.6バージョンをcassandra 1.0.7にアップグレード
- 27. Cassandraパフォーマンスチューニング
- 28. Grafana&Cassandra
- 29. Cassandra administration
- 30. Cassandraシステムディスクフル
リチャードに感謝します。あなたは例を挙げていただけますか? – Vinodh
答えに例を追加しました。 – Richard
リチャードに感謝します。あなたの例では、クラスタ化カラムとCQLドキュメント "カラムがPRIMARY KEYの問題のために定義されている順序"を理解することができます。 http://cassandra.apache.org/doc/cql3/CQL.html#createTableStmtから入手できます。 – Vinodh