こんにちは!中の人です。
前回までのレシピではAmazon RedshiftのSQL Workbenchを利用した基本的な使い方を紹介してきたかと思いますが、今回はプログラムでの操作について説明していきます。
日々、Redshiftを使った事例が紹介されており、ナレコムでも数億レコードの処理にRedshiftを利用しております。
Redshiftは、オペレーションを自動化させるためにもプログラムからの操作は重要となります。
そして今回は、「Amazon Redshift編~プログラムからRedshiftを操作しよう!(ODBC接続)~」と題して、PHPを利用してRedshiftにODBC接続して操作する方法を紹介します。
事前準備
1.	「Amazon Redshift編~Redshiftをはじめてみよう!パート①~②」を参考にRedshiftを起動させておきます。
2. サーバに対してphp-pgsqlをインストールしておきます。
| 1 | yum -y install php-odbc | 
テーブルの作成
ここからはRedshiftに対する操作です。
4. Clusterの情報からODBC URLをコピーします。
5. 続いてPHPのプログラムを記述します。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php $conn = odbc_connect("DRIVER={PostgreSQL};Server=***.***.ap-northeast-1.redshift.amazonaws.com;Port=5439;Database=[データベース名]", "[ユーザー名]", "[パスワード]"); if (!$conn) {     die('ERROR!'); } print(“OK!\n”); $sql = "SELECT NOW();"; $result = odbc_exec($conn,$sql); $rows = odbc_fetch_array($result);  var_dump($rows); ?> | 
※2行目のコネクションは管理画面のODBC URLを一部変更の必要があります。
| 1 2 3 | Driver={PostgreSQL}; Server=***.***.ap-northeast-1.redshift.amazonaws.com; Database=[データベース名]; UID=[ユーザー名]; PWD=[パスワード]; Port=5439  ↓ $conn = odbc_connect("DRIVER={PostgreSQL};Server=***.***.ap-northeast-1.redshift.amazonaws.com;Port=5439;Database=[データベース名]", "[ユーザー名]", "[パスワード]" ); | 
6. 上記をサーバにアップロードして実行します。
成功するとソースが以下の様に表示されている事が確認できます。
| 1 2 3 4 5 | OK! array(1) {   ["now"]=>   string(26) "2013-06-14 03:56:36.856238" } | 
いかがでしたでしょうか?
このようにプログラムを通してRedshiftにアクセスすることが確認できたと思います。
Redshiftに対応した多くのBIツール等がありますが、プログラムでコントロールする場合に参考にして下さい。
次回は「Amazon Redshift~プログラムからRedshiftを操作しよう(PG接続編)!~」と題して、RedshiftにPG接続して操作する方法を紹介します。
お楽しみに!



