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クエリを実行してデータを取得・操作することができます。