Amazon Redshift編~プログラムからRedshiftを操作してみよう!(PG接続)~

****

1. 「

Amazon Redshift編~Redshiftをはじめてみよう!パート① 、 パート② 」を参考にRedshiftを起動させておきます。

  1. サーバに対してphp-pgsqlをインストールしておきます。
1yum -y install php-pgsql

**
**

テーブルの作成

****

ここからはRedshiftに対する操作です。

3. 一覧から該当するClusterを選択します。

2013070201

4. Clusterの情報からJDBC URLをコピーします。

2013070202

5. 続いてPHPのプログラムを記述します。

1<?php23$conn = "host=***.***.ap-northeast-1.redshift.amazonaws.com port=5439 dbname=[データベース名] user=[ユーザー名] password=[パスワード]";45$link = pg_connect($conn);6if (!$link) {7    die('ERROR!'.pg_last_error());8}9print(“OK!\n”);1011$sql = "SELECT NOW();";12$result = pg_query($link,$sql);13$rows = pg_fetch_row($result); 1415var_dump($rows);16?>

2行目 管理画面のODBC URLを一部変更の必要があります。

1jdbc:postgresql://***.***.ap-northeast-1.redshift.amazonaws.com:5439/[データベース名]2 ↓34$conn = "host=***.***.ap-northeast-1.redshift.amazonaws.com port=5439 dbname=[データベース名] user=[ユーザー名] password=[パスワード]";

6. 上記をサーバにアップロードして実行します。

成功するとソースが以下の様に表示されている事が確認できます。

1OK!2array(1) {3  [0]=>4  string(29) "2013-06-14 04:42:09.966843+00"5}

なお、エラーについては以下の2つの方法を利用して取得することができます。

1$error = pg_last_error($link);

⇒クエリそのものに間違えがある場合や処理した結果エラーが起きた場合、上記で取得出来ます。

1Check 'stl_load_errors' system table for details.

上記の様に表示される場合は以下の方法で取得することができます。

1$sql = "select * from loadview order by starttime desc ";2$result = pg_query($link, $sql);3while($row = pg_fetch_assoc($result)){4    var_dump($row);5}

⇒redshift側のエラーを取得することができます。

いかがでしたでしょうか?

このようにプログラムを通してPG接続でもRedshiftにアクセスすることが確認できたと思います。

また、エラーを取得することで、結果に応じた処理を実装することも容易となります。

次回は『Amazon Redshift~接続方法(ODBC/JDBC/PG接続)別パフォーマンス比較編~』と題して、接続方法別のパフォーマンス比較をおこなってみたいと思いますので、お楽しみに!

この記事を書いた人

aws-recipe-user