主キー:カサンドラのデータモデリングは、最も重要なことです

主キー:カサンドラデータモデリングは知るべき最も重要なことです

テーブルとリレーションシップの制約間の外部キー関係についての関係をモデル化したデータを使用して、あなたは主キーから起動することができますが、RDBMSデータモデルより効果的。カサンドラは、JOINを使用することはできませんので、そのデータモデルの複雑さを作成することははるかに低いです。アパッチカサンドラの妥協の複雑クエリやデータアクセスパターンを事前に理解しています。

1.シンプルな主キー:

例:STUDENT_IDは人の主キーです

create table person (student_id int primary key, fname text, lname text, 
                     dateofbirth timestamp, email text, phone text );

2.複合キー

  • C1:1つのプライマリキーパーティションキーなしクラスタリング・キー。
  • (C1、C2):キー列C1を仕切る、C2は、クラスタ・キーの列です。
  • (C1、C2、C3、...):キー列C1、カラムC2、C3、およびクラスタなどキーを仕切ります。
  • (C1、(C2、C3、...)):3と同様、すなわちパーティションキー列C1、C2、C3 ...クラスタ・キー列を構成します。
  • (((C1、C2、...)、(C3、C4、...))):カラムC1、C2は、パーティションキー、カラムC3、C4、...クラスタ・キーのよう。

複合体はC3、C1は、キークラスタの一部として、最初のキーパーティションキー、キーの残りの部分であるキーC1、C2、あるとき、ことに注意することが重要です。コンポジットパーティションキーを生成するために、我々は、鍵括弧を指定する必要があり、例えば:((C1、C2)、C3、C4)。C3及びC4は、クラスタ結合の一部であるが、この場合、C1、及びC2は、パーティションの重要な部分です。

1.分割キー

オブジェクト・パーティション・キーは、行パーティションまたはノードセットの識別群に格納されています。データの読み取りや書き込みからのクラスタは、関数はパーティショナパーティションキーを算出したハッシュ値と呼ばれます。ハッシュ値は、行/パーティションを含むノードを決定するために使用されます。

例えば、1234年から1000年のパーティションキーの範囲の間の線は、ノードAに存在してもよいし、図に示すように、2000年から1235年のパーティションキーの範囲の間の線は、ノードBに存在してもよいです。値は1233であり、それはノードAに格納されます。

2.クラスタキー

目的は、ソートされた順序でクラスタキーラインデータを格納することです。クラスタ・キーに含まれる列に基づいてデータをソート。この配置は、データが有効になる取得するために、クラスタ化キーを使用することができます。

例1

CREATE TABLE user_videos ( userid uuid, added_date timestamp, videoid uuid, name text, preview_image_location text, PRIMARY KEY (userid, added_date, videoid) ) WITH CLUSTERING ORDER BY (added_date DESC, videoid ASC);
分区userid,集群键排序方式:added_date DESC, videoid ASC


SELECT * FROM user_videos WHERE userid = 522b1fe2-2e36-4cef-a667-cd4237d08b89 LIMIT 10;

例2

create table marks(stuid int,exam_date timestamp,marks float, exam_name text, 
                   primary key (stuid,exam_date));

パーティションは、ソート昇順exam_dateデフォルト、stuid
ユーザーID = 522b1fe2-2e36-4cef user_videos SELECT * FROM ; -a667-cd4237d08b89のLIMIT 10
クエリにクエリが「動画をアップロードするために、最後の10人のユーザー」で、単に句のクラスタリング、ORDER BYを追加しますそれは、非常に高速で便利で効率的なクエリを達成することができます。

これは、事前に最適化されたように見えるかもしれませんが、この機能は、ユースケースは非常に魅力的な追加有効になっています。

結論

クエリとデータアクセスパターンの事前の理解をオフにApache Cassandraの複雑貿易。(アンチパターンの反射)

参考記事

https://dzone.com/articles/cassandra-data-modeling-primary-clustering-partiti
https://www.datastax.com/blog/2016/02/most-important-thing-know-cassandra-data-modeling -primaryキー

おすすめ

転載: www.cnblogs.com/victor2302/p/12173424.html