Cassandra 作成タイプ

Cassandra Zuo Chengtaipu



「Cassandra を使用すると、テーブルに関連情報を保持できるカスタム型を定義できます。データ型を保持する型が見つからない場合は、組み込み型を使用して、目的のレイアウトをキャプチャする別の型を定義できます。

定義されたタイプは、それが作成されたキースペースのスコープに限定されることに注意してください。ドット表記を使用して、別のキースペースからテーブルにアクセスできます。







この投稿では、CREATE TYPE コマンドを使用してユーザー タイプを定義する方法について説明します。」



作成タイプのコマンド構文

次のコマンドは、create type コマンドの構文を示しています。



タイプを作成 [ 存在しない場合 ]
keyspace_name.type_name (
field_name cassandra_type [ ]
[ field_name cassandra_type ] [ 、... ]
) ;


このコマンドは IF EXISTS 句をサポートしています。これにより、同様の名前のコマンドがターゲット タイプに存在する場合にエラーを無効にすることができます。





Type_name には、Cassandra の命名規則に準拠した一意の名前を含める必要があります。

最後に、タイプとそれぞれの CQL タイプのフィールドを定義できます。カスタム タイプではカウンタ フィールドを使用しないでください。



次の例は、CVE レポートを保持するカスタム型を定義する方法を示しています。

キースペースをドロップ もしも zero_day が存在します。

キースペース zero_day を作成
複製あり = {
'クラス' : 「シンプルストラテジー」
'replication_factor' : 1
} ;
zero_day を使用します。

作成 タイプ cve_reports (
cve_number テキスト、
報告日 日にち
影響を受けたベンダーのテキスト、
重大度フロート、
) ;


上記のクエリは、定義されたユーザー タイプを保持するキースペース「zero_day」を作成することから始まります。

create type ステートメントは、テーブルの作成と同様の形式に従っていることに気付くでしょう。これは事実ですが、それらは異なる目的を果たし、一方が他方よりも優れた選択になる可能性があります。

ノート: カスタム タイプではなくテーブルを選択する前に、パフォーマンスへの影響を考慮してください。

次に示すように、上記のテーブルにデータを挿入できます。

次のように、cve_reports タイプのテーブルを作成し、サンプル データを挿入できます。

テーブル レコードの作成 (
ID 整数、
cve_reports cve_reports,
主キー ( ID )
) ;

データの挿入

レコードに挿入 ( ID 、cve_reports ) ( 1 { cve_number: 「CVE-2021-33852」 、報告日: '2022-12-02' 、影響を受けるベンダー: 「ワードプレス」 、 重大度: 6.0 } ) ;


次に、追加されたデータを次のように取得できます。

選択する * 記録から;

結果の出力


結論

この投稿では、Apache Cassandra でのカスタム定義型の作成と使用の基本について説明しました。また、カスタム タイプのテーブルを作成し、カスタム タイプの列にデータを挿入する方法についても説明しました。

ハッピーコーディング!!