DS201学習記録:Cassandra Python Driverの利用

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

Cassandraデータベースにアプリケーションから接続し、データを操作するためには、各プログラミング言語に対応した**ドライバー(Driver)**を使用します。ここでは、Pythonドライバーを使用してApache Cassandraに接続し、データを読み取る方法を解説します。

Cassandra Python Driverのインストール

まず、Cassandra Python Driverをインストールします。

pip install cassandra-driver

Pythonコード例

以下のPythonスクリプトは、Cassandraクラスターに接続し、videos_by_tag テーブルからデータを読み取る例です。

from cassandra.cluster import Cluster
import datetime # datetimeオブジェクトを扱うため

# Cassandraクラスターへの接続を確立
# デフォルトではlocalhost:9042に接続を試みる
# protocol_versionはCassandraのバージョンに合わせて調整が必要な場合がある
cluster = Cluster(protocol_version=3) 

# セッションの確立
# 'killrvideo' は操作対象のキースペース名
session = cluster.connect('killrvideo')

# CQLクエリの実行
# SELECT * FROM videos_by_tag は、パーティションキーを指定しない全件スキャンであり、
# 大規模なテーブルではパフォーマンス問題を引き起こす可能性があるため、本番環境では推奨されません。
# この例は学習目的です。
rows = session.execute("SELECT * FROM videos_by_tag")

# 取得したデータを表示
for row in rows:
    print(row)

# 接続を閉じる
cluster.shutdown()

コードの実行

上記のPythonスクリプトを test.py として保存し、実行します。

python test.py

実行結果例

Row(tag='datastax', added_date=datetime.datetime(2013, 10, 16, 9, 0), video_id=UUID('4845ed97-14bd-11e5-8a40-8338255b7e33'), title='DataStax Studio')
Row(tag='datastax', added_date=datetime.datetime(2013, 4, 16, 9, 0), video_id=UUID('5645f8bd-14bd-11e5-af1a-8638355b8e3a'), title='What is DataStax Enterprise?')
Row(tag='cassandra', added_date=datetime.datetime(2014, 1, 29, 9, 0), video_id=UUID('1645ea59-14bd-11e5-a993-8138354b7e31'), title='Cassandra History')
Row(tag='cassandra', added_date=datetime.datetime(2013, 3, 17, 9, 0), video_id=UUID('3452f7de-14bd-11e5-855e-8738355b7e3a'), title='Cassandra Intro')
Row(tag='cassandra', added_date=datetime.datetime(2012, 4, 3, 9, 0), video_id=UUID('245e8024-14bd-11e5-9743-8238356b7e32'), title='Cassandra & SSDs')

このように、Pythonドライバーを使用することで、アプリケーションからCassandraデータベースに接続し、CQLクエリを実行してデータを取得・操作することができます。