DS201学習記録:Cassandra Query Language (CQL) の基本

DS201: Foundations of Apache Cassandra™ and DataStax Enterprise の学習記録です。

CQLSH (Cassandra Query Language Shell) の起動

cqlsh は、Cassandraクラスターに接続し、CQL(Cassandra Query Language)を使用してデータベース操作を行うためのコマンドラインシェルです。

cqlsh

cqlsh を実行すると、Cassandraクラスターに接続され、cqlsh> プロンプトが表示されます。

Keyspaceの作成

**Keyspace(キースペース)**は、Cassandraにおけるデータベースのトップレベルのコンテナです。データの論理的なグループ化を提供し、テーブルやデータの構造、レプリケーション戦略などを定義します。

killrvideo という名前のキースペースを SimpleStrategyreplication_factor 1で作成する例です。

CREATE KEYSPACE killrvideo
    WITH replication = {
        'class': 'SimpleStrategy',
        'replication_factor': 1
    };
  • replication: キースペース内のデータの冗長複製を管理する方法を指定します。
    • 'class': レプリケーション戦略を指定します。SimpleStrategy は単一データセンター向け、NetworkTopologyStrategy は複数データセンター向けです。
    • 'replication_factor': データの複製数を指定します。

Keyspaceの選択

操作対象のキースペースを選択します。

USE killrvideo;

選択すると、プロンプトが cqlsh:killrvideo> のように変化します。

Tableの作成

キースペース内にテーブルを作成します。テーブルは、リレーショナルデータベースのテーブルに似ていますが、Cassandraのデータモデルに合わせて設計されます。

CREATE TABLE videos (
    video_id TIMEUUID,
    added_date TIMESTAMP,
    title TEXT,
    PRIMARY KEY (video_id)
);
  • TIMEUUID: 時間ベースのUUID(Universally Unique Identifier)型です。
  • TIMESTAMP: 日付と時刻の型です。
  • TEXT: 文字列型です。
  • PRIMARY KEY (video_id): video_id をプライマリキーとして設定します。Cassandraのプライマリキーは、データのパーティションとクラスタリングを決定します。

データの挿入

INSERT INTO 文を使用してテーブルにデータを挿入します。

INSERT INTO videos (video_id, added_date, title)
VALUES (1645ea59-14bd-11e5-a993-8138354b7e31, '2014-01-29', 'Cassandra History');

データの確認

SELECT 文を使用してテーブルからデータを取得します。

SELECT * FROM videos;

実行結果例:

  video_id                             | added_date                      | title
--------------------------------------+---------------------------------+-------------------
 1645ea59-14bd-11e5-a993-8138354b7e31 | 2014-01-28 15:00:00.000000+0000 | Cassandra History

データの全件削除

TRUNCATE 文は、テーブルからすべてのデータを削除します。テーブル構造は残ります。

TRUNCATE videos;

TRUNCATE 後に SELECT * FROM videos; を実行すると、データが空になっていることが確認できます。

 video_id | added_date | title
----------+------------+------