本文へスキップ

Cassandraパーティションキーとは?

かさんどらぱーてぃしょんきー

Cassandraパーティションキーとは、データをどのノードに格納するかを決定するキーで、Cassandraのパフォーマンス設計の核心となる概念です。

Cassandraパーティションキーは、Apache Cassandraにおけるテーブル主キー(Primary Key)の先頭部分にあたるカラムまたはカラム組み合わせです。このキーのハッシュ値を元に、データが格納されるノード(パーティション)が決まります。

Cassandraはデータをパーティション単位で管理します。同じパーティションキーを持つ行は同一パーティション(同一ノードまたはそのレプリカ)にまとめて保存されます。そのため、クエリでパーティションキーを指定するとクラスタ内の特定ノードに直接アクセスできるため、レスポンスが非常に高速になります。逆に、パーティションキーを指定しないクエリは全ノードへのフルスキャン(FULLスキャン)が必要になり、パフォーマンスが大幅に低下します。

パーティションキーを設計するうえで重要な点は次のとおりです。

  • カーディナリティ:特定のキー値にデータが集中すると「ホットスポット」が生じ、特定ノードに負荷が偏る
  • データサイズのバランス:1パーティションが無制限に大きくなるとメモリ・ネットワークに悪影響を与える
  • アクセスパターンとの一致:どのクエリでデータを取り出すかを先に決め、それに合わせてキーを設計する

複合パーティションキー(複数カラムをまとめてパーティションキーとする)を使うことで、単一カラムでは偏りが出る場合に分散を改善することもできます。Cassandraではこのパーティションキーの設計がシステム全体の性能を左右します。

使い方・例文

ユーザーIDと日付の組み合わせをパーティションキーにすることで、特定ユーザーの特定日のログを高速に検索でき、かつノード間でデータが均等に分散される設計が典型的な例です。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語