第3回 CQL(Cassandra Query Language)の基礎

今回はCassandraにデータを格納したり、Cassandraからデータを取り出したりするための言語であるCQLで何ができるかを見ていきます。
Cassandraを起動し、cqlshもしくはDataStax DevCenterで接続を行ってください。 以下では cqlsh を利用していきます。
キースペースとテーブル
キースペースはCassandraにおいて、一番大きいデータのまとまりです。すべてのデータはどれかひとつのキースペースに所属します。キースペースの主な役割はどのようにデータの複製を配置するか(レプリケーション)を決定することです。
早速キースペースを作成しましょう。
cqlsh> CREATE KEYSPACE my_app WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1};
今回は1台のノードでCQLを試すため、レプリケーション戦略に SimpleStrategy を、レプリケーション数(replication_factor)は1にします。
レプリケーションについては後の連載においてCassandraのクラスターを構築する際に詳しく見ていきます。
次にテーブルを作ります。 まず、今作ったばかりのキースペースに切り替えましょう。 USE 文を利用します。
cqlsh> USE my_app; cqlsh:my_app>
cqlsh を利用している場合、プロンプトが切り替わりましたね。 現在 my_app キースペースで作業をしていることを示しています。
Cassandraのテーブルは、リレーショナルデータベースのテーブルに似ており、格納するデータのカラム名やデータ型を定義します。 早速一つテーブルを作成してみましょう。
cqlsh:my_app> CREATE TABLE user ( user_id varchar PRIMARY KEY, first_name varchar, last_name varchar );
user という名前のテーブルを my_app キースペース内に作成しました。 SQLの CREATE TABLE 文によく似ていますね。 PRIMARY KEY (プライマリーキー)はSQLではレコードを一意に識別する主キーを設定するために利用されますが、CQLでも同様です。 CQLのプライマリーキーにはもうひとつ重要な役割があります。 それは、データをクラスター内のどのノードに格納するかを決めることです(そのためのキーを パーティションキー と呼びます)。 CQLではプライマリーキーがひとつの場合、それがパーティションキーになります。 そのため、SQLとは違い、CQLでは必ず PRIMARY KEY を指定しなければなりません。
CQLのデータ型
CQLは以下の様々なデータ型をサポートします。
種類 | データ型 |
数値 | int bigint float double decimal varint |
文字列 | text ascii varchar |
時間 | timestamp timeuuid |
コレクション | list set map |
その他 | uuid blob inet counter |
特徴的なものとしてはコレクションのサポートです。複数の値をひとつのカラムに入れることができます。
この記事は参考になりましたか?
- こんにちはCassandra!―米国でApache Cassandraを開発している日本人コミッターが教える、1から始めるCassandra 連載記事一覧
-
- 第3回 CQL(Cassandra Query Language)の基礎
- 第2回 Apache Cassandraをインストールしよう
- 第1回 Apache Cassandraを始めよう
- この記事の著者
-
森下雄貴(モリシタユウキ)
DataStax社ソフトウェアデベロッパーおよびApache Cassandraコミッター。 仕事では毎日ほぼ100%、Cassandraのコードをいじっています。 Spotifyで音楽を聞きながらコードを書き、iPhoneでメールをチェックし、 オフはNetflixで映画を見たり、プレイステーショ...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア