Cassandraを使用した列ファミリーの概要



このブログは、Cassandraの列ファミリーの重要性を強調しています

カラムファミリー

列ファミリーは、RDBMSまたはリレーショナルデータベース管理システムのテーブルに似ており、同様のデータを関連付ける論理的な区分です。基本的に、同様のデータでは、同様の主題のある種のデータを保存する傾向があります。

たとえば、注文データは単一の列ファミリに保存されるため、行キーとして注文IDを使用したり、特定の注文ファミリに保存するためにその注文の一部として提供された製品の種類などのさまざまな列を使用したりできます。 。特定の例を挙げると、ユーザー列ファミリーは、キーとしてのユーザーIDで構成されます。したがって、IDを自由に選択でき、列は「name = Kunal」にすることができます。また、列の値はKunalとBangaloreです。 1つの列ファミリーにクリケット選手の統計を保存できるようにするCricketer列ファミリーと呼ばれる2番目の列ファミリーがあります。たとえば、ある列にSachin Tendulkarを、別の列に何世紀も含めることができます。したがって、任意の数の列が存在する可能性があります。





列の種類

列ファミリーは、RDBMSの世界のテーブルに類似したテーブルに他なりません。それには特定のタイプがあります。

静的カラムファミリ –静的列ファミリーは、名前とデータ型が定義される場所です。したがって、列ファミリーを作成するときに、列名とデータ型に名前を付けるオプションを使用できます。列は静的なままであり、使用可能な列の数がわかるため、静的と呼ばれます。



ダイナミックカラムファミリー –一方、動的列ファミリーは列名を事前に定義せず、データを格納するために任意のアプリケーションと列名を使用するCassandraの機能を利用できます。非構造化データでは、ほとんどの場合、動的列ファミリーが後で追加された可能性のある新しいフィールドの処理に役立つため、動的はある意味で役立ちます。

静的列ファミリーがあり、データのロード中に動的列ファミリーをコードに追加する場合は、いつでも静的列ファミリーに追加できます。 Cassandraは、列名を自由に選択できるようにします。

RDBMSとの違い

Cassandra列ファミリーはスキーマフリーであり、非常にスケーラブルです。 Cassandra列ファミリーには、NameとComparatorの2つの属性があります。したがって、Cassandra列ファミリーがある場合、名前を付けることは必須になり、Comparatorは基本的に列名のデータ型です。コンパレータを指定しない場合は、デフォルトのコンパレータであると見なされます。



カサンドラには、スーパーカラムファミリーのカラムもあります。内部でスーパーカラムを使用します。これは論理的なグループ化であり、列のグループ化の別のレベルです。したがって、ユーザー列ファミリーには、ユーザーの個人情報と製品情報を含めることができる2つのスーパー列を含めることができます。

列は、Cassandraのデータの最小増分です。 3つのコンポーネントがあります。

プロジェクト管理における調達管理
  • 名前
  • タイムスタンプ –競合解決で使用され、タイムスタンプは編集できません。これは、このデータまたは列がいつ更新されたかを確認するための内部メカニズムです。
  • 期限切れの列 –列が期限切れになることを知るために、列に有効期限を指定できます。
  • カウンター列 –カウンター列は、それらのカウンター列をインクリメントおよびデクリメントできるように列を維持することに他なりません。

スーパーコラム

スーパーカラムは、ビジネスニーズと論理的なグループ化に応じて、すべてのカラムをまとめてグループ化します。これにより、通常の列ファミリー構造に別のレベルのネストが追加されます。それらはスーパーカラムファミリー構造を構成します。

スーパー列の主なケースは、他の列ファミリーからの複数の行を1つの行に非正規化して、マテリアライズド・ビューのデータ検索を可能にすることです。

ユースケース

スーパーカラムの制限

1つの制限は、単一のサブ列ファミリーを読み取るには、スーパー列ファミリーのすべてのサブ列を逆シリアル化する必要があることです。もう1つの制限は、スーパー列のサブ列にセカンダリインデックスを作成できないことです。

列のデータ型

列のデータ型

上の画像では、さまざまなデータ型があります。列値のデータ型はバリデーターと呼ばれます。また、コンパレータは列のデータ型です。名前とアドレスが列名になります。したがって、列名の場合は日付を設定できます。列名として日付を指定することにより、時系列データを取得することもできます。

anacondapythonの使用方法

幅の広い行と複数の行があります。何百万もの列と行が使用可能になる可能性があります。

細い行には少数の列があり、限られた行のみを持つオプションがあります。

複合キー

これは、1つ以上の主キーフィールドで構成されます。都市の名前が行キーとして設定されているとすると、2つの異なる州で名前が付けられた都市がある可能性があるため、どの都市とどの州を指定する必要があります。これは単に、鍵を記載する必要があることを意味します。 1つのタイプの単純な列キーを使用する代わりに、複数のタイプのコンポーネントとも呼ばれる複数の値を集約して、1つの一意の列キーを形成できます。

質問がありますか?コメントセクションでそれらに言及してください。折り返しご連絡いたします。

関連記事:

CassandraのSnitchesの概要