SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

直近開催のイベントはこちら!

EnterpriseZine編集部ではイベントを随時開催しております

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けの講座「EnterpriseZine Academy」や、すべてのITパーソンに向けた「新エバンジェリスト養成講座」などの講座を企画しています。EnterpriseZine編集部ならではの切り口・企画・講師セレクトで、明日を担うIT人材の育成をミッションに展開しております。

お申し込み受付中!

こんにちはCassandra!―米国でApache Cassandraを開発している日本人コミッターが教える、1から始めるCassandra

第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

 特徴的なものとしてはコレクションのサポートです。複数の値をひとつのカラムに入れることができます。

次のページ
データの登録と確認

この記事は参考になりましたか?

  • Facebook
  • Twitter
  • Pocket
  • note
こんにちはCassandra!―米国でApache Cassandraを開発している日本人コミッターが教える、1から始めるCassandra 連載記事一覧

もっと読む

この記事の著者

森下雄貴(モリシタユウキ)

DataStax社ソフトウェアデベロッパーおよびApache Cassandraコミッター。 仕事では毎日ほぼ100%、Cassandraのコードをいじっています。 Spotifyで音楽を聞きながらコードを書き、iPhoneでメールをチェックし、 オフはNetflixで映画を見たり、プレイステーショ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/7146 2015/08/24 13:38

Job Board

AD

おすすめ

アクセスランキング

アクセスランキング

イベント

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング