Symfoware

Symfowareについての考察blog

Cassandra 3.7 cqlshでテーブルを作成してデータの登録、検索

Cassandra 3.7をDebianにインストールしてみました。
Cassandra 3.7をDebian 8.5(jessie)にaptでインストールする


今回は、cqlshを使用してテーブルの作成とデータの登録、検索を行ってみます。


KEYSPACE,TABLEの作成



こちらを参考にしました。
http://cassandra.apache.org/doc/latest/cql/ddl.html

テーブルを作成する前に、キースペースを作成する必要があります。
RDBだと「データベース」の概念でしょうか。
作成したキースペース内にテーブルを作成します。

cqlshを起動して、「CREATE KEYSPACE」でキースペースを作成します。

構文は以下の通り。


CREATE KEYSPACE sample
WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 1};




WITHオプションは必須です。
別のデータベースとレプリケーションを行う際のアルゴリズムをclassで指定します。
http://cassandra.apache.org/doc/latest/architecture/dynamo.html


今回は「SimpleStrategy」を指定しました。
最低いくつのノードに書き込むかを「replication_factor」で指定します。
スタンドアロンな環境なので1を指定しました。


cqlsh> CREATE KEYSPACE sample
... WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 1};




キースペースを表示するには「DESCRIBE keyspaces」を実行します。
How to list all the available keyspaces in Cassandra?


cqlsh> DESCRIBE keyspaces;

system_schema system_auth system sample system_distributed system_traces



sampleキースペースが追加されていることが確認できました。


「USE sample」で作成したキースペースに切り替えます。


cqlsh> USE sample;
cqlsh:sample>






続いて、sampleキースペースにテーブルを作成します。
一般的なデータベースのcreate table文とほとんど同じです。
こんなテーブルを作成しました。


  1. CREATE TABLE t (
  2.     id int,
  3.     value text,
  4.     PRIMARY KEY (id)
  5. );



PRIMARY KEYの指定は必須です。
指定しないとこんなエラーが表示されます。


InvalidRequest: code=2200 [Invalid query] message="No PRIMARY KEY specifed (exactly one required)"




実行してみます。


cqlsh:sample> CREATE TABLE t (
         ...     id int,
         ...     value text,
         ...     PRIMARY KEY (id)
         ... );



これで「t」テーブルが作成できました。
「DESCRIBE tables」でテーブルの一覧が表示できます。


cqlsh:sample> DESCRIBE tables;

t



表示は寂しいですが、ちゃんとテーブルが作成できました。






データの登録と検索




作成したテーブルにデータを登録してみます。
一般的なデータベースのinsert文と同じ構文です。


  1. INSERT INTO t (id, value) VALUES (1, 'テスト1');




2レコード追加しました。


cqlsh:sample> INSERT INTO t (id, value) VALUES (1, 'テスト1');
cqlsh:sample> INSERT INTO t (id, value) VALUES (2, 'テスト2');




selectでデータを検索してみます。


cqlsh:sample> SELECT * FROM t;

id | value
----+----------
1 | テスト1
2 | テスト2

(2 rows)




もちろんwhere句で検索条件が指定できます。


cqlsh:sample> SELECT * FROM t WHERE id = 2;

id | value
----+----------
2 | テスト2






データを更新するにはupdate。
通常のデータベースと同じ感覚で使用できますね。


  1. UPDATE t SET value = 'テスト1変更' WHERE id = 1;



実行してみます。


cqlsh:sample> UPDATE t SET value = 'テスト1変更' WHERE id = 1;
cqlsh:sample> SELECT * FROM t;

id | value
----+--------------
1 | テスト1変更
2 |     テスト2

(2 rows)






データの削除はdeleteです。


  1. DELETE FROM t WHERE id = 1;




実行結果


cqlsh:sample> DELETE FROM t WHERE id = 1;
cqlsh:sample> SELECT * FROM t;

id | value
----+----------
2 | テスト2

(1 rows)




次はPythonで別の端末から接続してみたいと思います。






【参考URL】

Data Definition

Data Manipulation

How to list all the available keyspaces in Cassandra?

cqlsh commands


関連記事

テーマ:サーバ - ジャンル:コンピュータ

  1. 2016/08/11(木) 21:42:46|
  2. Cassandra
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<Cassandra 外部アクセスを許可しPython(Datastax)で接続する | ホーム | Cassandra 3.7をDebian 8.5(jessie)にaptでインストールする>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1917-f653f582
この記事にトラックバックする(FC2ブログユーザー)