PHPからCassandraを使うには、ThriftをインストールしてPHP用Cassandraクライアントを生成するという方法もあるのですが、phpcassaなるライブラリを利用したらThriftのインストールがバッサリとショートカットできた…。
一応Thriftを使った方法はウノウラボさんの所で紹介されていますので、そちらを参照くださいませー
ひとまずこのエントリーではphpcassaのインストールと簡単な使い方を紹介しておきます。
phpcassaのインストール
GitHub - thobbs/phpcassa: PHP client library for Apache Cassandra
# wget https://github.com/downloads/thobbs/phpcassa/phpcassa-0.8.a.2.tar.gz
# tar -zxvf phpcassa-0.8.a.2.tar.gz
# cp -R phpcassa-0.8.a.2 /usr/local/phpcassa
# cd /usr/local/phpcassa/thrift/ext/thrift_protocol
# phpize
# ./configure
# make && make install
上記では /usr/local にコピーしていますが、コピーする位置はお好みでどうぞ。
phpが認証するように、php.iniファイルへ記述。Ubuntuの場合はconf.dディレクトリにthrift_protocol.ini を作成。
# vi /etc/php5/apache2/conf.d/thrift_protocol.ini
以下を記述
extension=thrift_protocol.so
apache再起動。
# apache2ctl restart
phpにthrift_protocolがインストールされているか確認。
# php -i | grep thrift
/etc/php5/cli/conf.d/thrift_protocol.ini,
thrift_protocol
PWD => /usr/local/phpcassa/thrift/ext/thrift_protocol
_SERVER["PWD"] => /usr/local/phpcassa/thrift/ext/thrift_protocol
cassandra-cliでテストデータを追加。
# cassandra-cli
[default@unknown] connect localhost/9160;
[default@unknown] create keyspace Keyspace1;
[default@unknown] use Keyspace1;
[default@Keyspace1] create column family ColumnFamily1;
[default@Keyspace1] quit;
ひとまずテストスクリプトを書いて、動かしてみる。
<?php require_once '/usr/local/phpcassa/connection.php'; require_once '/usr/local/phpcassa/columnfamily.php'; // Making a Connection $pool = new ConnectionPool('Keyspace1', array('localhost')); // Getting a ColumnFamily $column_family = new ColumnFamily($pool, 'ColumnFamily1'); // Inserting Data $column_family->insert('row_key', array('col_name'=>'col_val')); // Getting Data $tmp_arr = $column_family->get('row_key', array('col_name')); print_r($tmp_arr); /* array( [col_name]=>[col_val] ) */ // Removing Data $column_family->remove('row_key', array('col_name')); $pool->close();
phpcassaのドキュメントはこちら。
phpcassa 1.0.a.6 Documentation — phpcassa v1.0.a.6 documentation