Bluemixでデータ分析「dashDB」：MacのターミナルからCLPPlusで接続してみた

Macのターミナル（ソフトはiTermを使ってます）から、dashDBに接続。
Web GUIのコンソールからもSQLを実行できるdashDBですが、やっぱり真面目に使おうとしたらコンソールからでしょう！ということで試してみました。

Windowsの方はこちらー。
http://qiita.com/azzeten/items/554552a1150da6607d35

## 接続用のツールをダウンロード＆インストール
・dashDBのWEB画面で、「Connect」→「Download Tools」
![スクリーンショット 2016-05-01 20.49.50.png](https://qiita-image-store.s3.amazonaws.com/0/119378/81d65f6c-d552-93a6-2953-57cd1ff4ccf7.png)

・MacOSのところをクリックしてダウンロード。
![スクリーンショット 2016-05-01 20.52.15.png](https://qiita-image-store.s3.amazonaws.com/0/119378/2c5763be-dce1-22f7-4ed8-10ac3e4af6c9.png)

・ダウンロードしたファイルをダブルクリックして実行すると、フォルダが表示されるので、Install DSDriverをクリック。あとは勝手にインストールされます。インストール先は/Applications/dsdriver/です。

・パスを通して、環境変数を反映させます。

```console:コンソール
$ vi ~/.bash_profile
```
```bash:.bash_profileの内容
export PATH=$PATH:/Applications/dsdriver/bin
export DYLD_LIBRARY_PATH=/Applications/dsdriver/lib 
```
```console:コンソール
$ source ~/.bash_profile
```

参考：https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014931374


## 接続情報を確認
dashDBのWEB画面から、SSLを使ったときの内容と使わなかったときの接続内容が案内されています（ユーザ名、パスワード、JDBCを使ったときなどなど）。各種確認をして、この後の接続に向けて準備します。
![スクリーンショット 2016-05-01 21.44.25.png](https://qiita-image-store.s3.amazonaws.com/0/119378/f1da9315-d01b-0191-8787-6b7649a507e6.png)


## 非SSLでの接続
```console:CLPPLUSを使った接続（非SSL）のコマンド内容
$ clpplus -nw ユーザ名@dashdb-entry-yp-dal09-09.services.dal.bluemix.net:50000/BLUDB
CLPPlus: バージョン 1.6
Copyright (c) 2009, 2011, IBM CORPORATION.  All rights reserved.

パスワードを入力してください: ************

データベース接続情報 :
---------------------------------
ホスト名 = dashdb-entry-yp-dal09-09.services.dal.bluemix.net
データベース・サーバー = DB2/LINUXX8664  SQL10070
SQL 許可 ID = ユーザ名
ローカル・データベース別名 = BLUDB
ポート = 50000

SQL>
```

「SQL>」と出てくればOKです。試しにクエリも打ってみます。

```sql
SQL> select * from ishigaki limit 10;

DATE         AVG  HIGH   LOW
---------- ----- ----- -----
2015-04-19  25.2  26.5  24.4
2015-04-20  25.7  28.5  22.6
2015-04-21  22.1  24.7  20.8
2015-04-22  22.3  24.1  21.1
2015-04-23  24.2  26.9  22.0
2015-04-24  24.8  28.0  22.6
2015-04-25  23.8  25.6  22.5
2015-04-26  23.9  27.0  20.5
2015-04-27  25.1  28.1  23.3
2015-04-28  25.3  28.0  22.9

10個の行が取り出されました。
```


## SSLでの接続

SSLで接続するためには前処理が必要です。これは一回やればもう終わり（２回目以降の接続時はやらなくてOK）です。以下３つのコマンドを実行します。
db2cli writecfg add -database DB名 -host ホスト名 -port SSLのポート
db2cli writecfg add -dsn 接続名（自分の好きな名前をつけます） -database DB名 -host ホスト名 -port SSLのポート
db2cli writecfg add -database DB名 -host ホスト名 -port SSLのポート -parameter "SecurityTransportMode=SSL"


```console:SSL接続のための準備の実行例
$ db2cli writecfg add -database BLUDB -host dashdb-entry-yp-dal09-09.services.dal.bluemix.net -port 50001

===============================================================================
db2cli writecfg completed successfully.
===============================================================================

$ db2cli writecfg add -dsn dash_testssl -database BLUDB -host dashdb-entry-yp-dal09-09.services.dal.bluemix.net -port 50001

===============================================================================
db2cli writecfg completed successfully.
===============================================================================

$ db2cli writecfg add -database BLUDB -host dashdb-entry-yp-dal09-09.services.dal.bluemix.net -port 50001 -parameter "SecurityTransportMode=SSL"

===============================================================================
db2cli writecfg completed successfully.
===============================================================================
```
CLPPLUSを使用する場合、SSL証明書はCLPPLUSの中に含まれているため、個別にダウンロード/インポートする必要はないらしい。

では実行！

```console:CLPPLUSを使った接続（SSL）のコマンド内容
$ clpplus -nw ユーザ名@dash_testssl

CLPPlus: バージョン 1.6
Copyright (c) 2009, 2011, IBM CORPORATION.  All rights reserved.

パスワードを入力してください: ************

データベース接続情報 :
---------------------------------
ホスト名 = dashdb-entry-yp-dal09-09.services.dal.bluemix.net
データベース・サーバー = DB2/LINUXX8664  SQL10070
SQL 許可 ID = ユーザ名
ローカル・データベース別名 = DASH_TESTSSL
ポート = 50001

SQL>
```

できたー！