Apache Cassandraとは
ウィキペディアによると
Apache Cassandra(アパッチ カサンドラ)は、オープンソースの分散データベース管理システムである。
https://ja.wikipedia.org/wiki/Apache_Cassandra
特徴
- CQL (Cassandra Query Language):SQLに似たクエリ言語CQLを提供しています。比較的容易にデータの取得、更新、削除が行えます。
- スケーラブルで高い可用性:大規模なデータセットを処理するのに適しています。
- マスターレス:全てのノードは対等な地位で動作します。データの書き込みや読み取りは、任意のノードによって処理されます。
- Column Family:柔軟なスキーマ設計が可能であり、各行が複数のカラムを持つことができます。また、カラムは任意のタイプのデータを格納できます。
- 高可用性と耐久性:データのレプリケーションや自動障害回復機能を提供しています。データは複数のノードに分散して保存されるため、単一のノードの障害が全体のシステムに影響を及ぼすことはありません。
注意点
データの整合性を保つことがリレーショナルデータベースよりも難しい
基本的なクエリ
以下はCassandraの基本的なクエリの一部です。
1 . テーブルの作成:
CREATE TABLE tablename (
column1 datatype1,
column2 datatype2,
...
PRIMARY KEY (column1)
);
2 . データの挿入:
INSERT INTO tablename (column1, column2, ...) VALUES (value1, value2, ...);
3 . データの更新:
UPDATE tablename SET column1 = new_value1, column2 = new_value2, ... WHERE condition;
4 . データの削除:
DELETE FROM tablename WHERE condition;
5 . 全データの取得:
SELECT * FROM tablename;
6 . 特定の条件を満たすデータの取得(partition keyとclustering keyを指定していない場合は最後にALLOW FILTERINGをつける):
SELECT column1, column2, ... FROM tablename WHERE condition;
7 . キーによるデータの取得(partition keyとclustering keyを指定していない場合は最後にALLOW FILTERINGをつける):
SELECT * FROM tablename WHERE column1 = 'key_value';
8 . 複数のキーでデータを取得(partition keyとclustering keyを指定していない場合は最後にALLOW FILTERINGをつける):
SELECT * FROM tablename WHERE column1 IN ('key_value1', 'key_value2', ...);