35

2 billion cells (rows x columns)Cassandra Wiki では、パーティションごとに の制限があるとのことです。しかし、パーティションとは何ですか?

列ファミリーごとにノードごとに 1 つのパーティションがありますか。これは、列ファミリーの最大サイズが2 billion cells * number of nodesクラスター内にあることを意味します。

それとも、Cassandra は、列ファミリーのすべてのデータを格納するために必要な数のパーティションを作成しますか?

私は新しいプロジェクトを開始しているので、Cassandra 2.0 を使用します。

4

2 に答える 2

66

CQL3 の出現により、用語は古い倹約用語からわずかに変更されました。

基本的

Create Table foo (a int , b int, c int, d int, PRIMARY KEY ((a,b),c))

CQL3 テーブルを作成します。a と b の情報は、パーティション キーを作成するために使用されます。これは、情報が存在するノードを記述します。これが20億セル制限で語られる「パーティション」です。

そのパーティション内では、情報はクラスタリング キーと呼ばれる c によって編成されます。a、b、および c を組み合わせて、d の一意の値を定義します。この場合、パーティション内のセルの数は c * d になります。したがって、この例では、a と b の任意のペアに対して、c と d の組み合わせは 20 億通りしかありません。

したがって、データをモデル化するときは、データが Cassandra 全体にランダムに分散されるように、主キーが変化することを確認する必要があります。次に、クラスタリング キーを使用して、データが希望どおりに利用できるようにします。

cassandra で の Datmodeling の詳細については、このビデオをご覧ください。

編集:コメントからのもう1つの例

Create Table foo (a int , b int, c int, d int, e int, f int, PRIMARY KEY ((a,b),c,d))

パーティションは、a と b の組み合わせによって一意に識別されます。

パーティション c と d 内では、パーティション内のセルを並べ替えるために使用されるため、レイアウトは次のようになります。

(a1,b1) --> [c1,d1 : e1], [c1,d1  :f1], [c1,d2 : e2] ....  

したがって、この例では、各セルに以下を含む 20 億個のセルを含めることができます。

  • cの値
  • dの値
  • e または f のいずれかの値

したがって、20 億の制限は、 と の一意のタプルの合計を指し(c,d,e)ます(c,d,f)

于 2013-12-11T16:51:15.027 に答える
4

から: http://www.datastax.com/documentation/cql/3.0/cql/cql_reference/create_table_r.html


複合パーティションキーの使用¶

複合パーティション キーは、複数の列で構成されるパーティション キーです。追加のかっこのセットを使用して、複合パーティション キーを構成する列を囲みます。主キー定義内にあり、ネストされた括弧の外側にある列はクラスタリング列です。これらの列は、取得を容易にするためにパーティション内で論理セットを形成します。</p>

CREATE TABLE Cats (
  block_id uuid,
  breed text,
  color text,
  short_hair boolean,
  PRIMARY KEY ((block_id, breed), color, short_hair)
);

たとえば、複合パーティション キーは、block_id とbreed で構成されます。クラスタリング列、color および short_hair は、データのクラスタリング順序を決定します。通常、Cassandra は、block_id が同じで品種が異なる列をノードごとに格納し、block_id と品種が同じ列を同じノードに格納します。


含意

==> パーティションはレプリケーションの最小単位です (それだけでは sh** は意味がありません:))

==> block_id と品種のすべての組み合わせがパーティションです。

==> クラスター内の任意のマシンに、同じパーティション キーを持つすべての行が存在するか、まったく存在しません。

于 2014-09-17T01:34:05.513 に答える