とほほのCassandra入門
目次
環境
- 実施日: 2016年6月26日
- ホストOS: Windows 10
- ゲストOS: CentOS 7.2
- ハイパーバイザ: VirtualBox 5.0.22
- Cassandra 2.2.6
Cassandra とは
- Facebook社で開発された分散データベース。
- 現在は Apache プロジェクトの一つ、Apache Cassandra として開発されている。
- ライセンスは Apache License 2.0。
- データを複数のサーバに分散配置することで、単一障害点を持たず、一部のサーバが故障しても稼働し続けることが可能。
- 稼働中にサーバを増設・減設することも可能。
- トランザクション(START TRANSACTION, ROLLBACK, COMMIT)はサポートしない。
- 厳密なデータベースに求められるACID特性の内、A:原子性(atomic)、I:独立性(isolated)、D:永続性(durable) はサポートするが、C:整合性(consistency) を犠牲にすることで、分散・大容量・高速性を実現している。
- 列思考型(カラム思考型)データベース。
- 行(row)毎に異なったカラム(列)を作成することができる。
- NoSQL(列思考DB) として開発されたが、現在では SQL ライクな CQL (Cassandra Query Language) もサポートされている。
- Cassandra 2.2 では JSON に対応。
Cassandraをインストールする
# yum -y install java
# vi /etc/yum.repos.d/datastax.repo
[datastax]
name = DataStax Repo for Apache Cassandra
baseurl = http://rpm.datastax.com/community
enabled = 1
gpgcheck = 0
# yum -y install dsc22
# systemctl enable cassandra
# systemctl start cassandra
# cqlsh
cqlsh> quit
サンプル
cqlsh> create keyspace myspace with replication = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 };
cqlsh> use mySpace;
cqlsh:myspace> create table users ( user_id int PRIMARY KEY, user_name text );
cqlsh:myspace> insert into users ( user_id, user_name ) values ( 101, 'yamada' );
cqlsh:myspace> insert into users ( user_id, user_name ) values ( 102, 'suzuki' );
cqlsh:myspace> insert into users ( user_id, user_name ) values ( 103, 'tanaka' );
cqlsh:myspace> select * from users;
MySQL と Cassandra の用語の対比
MySQL | Cassandra |
データベース | キースペース |
テーブル | カラムファミリー |
主キー | キー |
- | (スーパーカラム) |
フィールド(カラム) | カラム |
キースペースの操作
cqlsh> create keyspace キースペース名;
cqlsh> drop keyspace キースペース名;
cqlsh> use キースペース名;
cqlsh> describe keyspace;
リンク
Copyright (C) 2016 杜甫々
初版:2016年6月26日 最終更新:2016年6月26日
https://www.tohoho-web.com/ex/cassandra.html