はじめに
この記事では、Watson Queryにclpplusで接続する手順を紹介します。
手順概要
- ドライバーパッケージをダウンロード
- ドライバーパッケージをインストール
- 接続情報を設定
- clpplusで接続
環境
- Watson Query Liteプラン (デプロイ済み)
- Client: MacBook Air MacOS
手順
1. ドライバー・パッケージをダウンロード
IBMCloudのコンソールからWatson Queryの画面を開きます。
左側にあるメニューから「管理」を選択し、「Go to UI」を選択し、Watson Queryの管理コンソールを開きます。
Watson Queryの管理コンソールの左上にあるリストを開きます。
リストから「接続の詳細」を選びます。
「接続の詳細」の画面で、「Mac」のタブを開き、「ドライバー・リスト」のリンクの先からドライバー・パッケージをダウンロードします。
Mac用のモジュールで、出来るだけ新しいものをダウンロードします。
この手順では、v11.5.7.0をダウンロードしました。
2. ドライバー・パッケージをインストール
ダウンロードしたibm_data_server_driver_package_macos_v11.5.dmgをダブルクリックして開きます。
以下の画面が表示されるので、installDSDriverをダブルクリックして実行します。
この実行によりドライバー・パッケージが/Application/dsdriverへインストールされます。
3. 接続情報を設定
「接続の詳細」の画面で、「接続します」のボタンをクリックして、接続情報を表示します。
「SSLを使用する接続の場合」の設定内容をコピーします。右側にあるコピーのアイコンをクリックしてコピーします。
適当なテキストエディターに貼り付けます。
以下の例のように3行目のparameterの部分に、Authentication=GSSPLUGIM
を追加します。<ー重要!!!
db2cli writecfg add -database bludb -host xxxx.databases.appdomain.cloud -port 30207
db2cli writecfg add -dsn dashdb -database bludb -host xxxx.databases.appdomain.cloud -port 30207
db2cli writecfg add -database bludb -host xxxx.databases.appdomain.cloud -port 30207 -parameter "SecurityTransportMode=SSL;Authentication=GSSPLUGIN"
/Applications/dsdriver/db2profileを実行してドライバーパッケージのユーティリティ実行に必要な環境変数を設定します。<ー重要!!!
環境変数の設定後、db2cliコマンドが使用できるようになるので、先程編集したコマンドを実行します。
以下は実行例です。
% source /Applications/dsdriver/db2profile
% db2cli writecfg add -database bludb -host xxx.databases.appdomain.cloud -port 30207
db2cli writecfg add -dsn dashdb -database bludb -host xxx.databases.appdomain.cloud -port 30207
db2cli writecfg add -database bludb -host xxx.databases.appdomain.cloud -port 30207 -parameter "SecurityTransportMode=SSL;Authentication=GSSPLUGIN"
===============================================================================
db2cli writecfg completed successfully.
===============================================================================
===============================================================================
db2cli writecfg completed successfully.
===============================================================================
===============================================================================
db2cli writecfg completed successfully.
===============================================================================
db2cliコマンドでの設定内容は、/Applications/dsdriver/cfg/db2dsdriver.cfgに書き込まれます。
テキストファイルなので、catコマンドなどで設定内容を確認することが出来ます。
以下は設定内容の確認例です。
% cat /Applications/dsdriver/cfg/db2dsdriver.cfg
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<configuration>
<databases>
<database host="xxxx.databases.appdomain.cloud" name="bludb" port="30207">
<parameter name="SecurityTransportMode" value="SSL"/>
<parameter name="Authentication" value="GSSPLUGIN"/>
</database>
</databases>
<dsncollection>
<dsn alias="dashdb" host="xxxx.databases.appdomain.cloud" name="bludb" port="30207"/>
</dsncollection>
</configuration>
4. clpplusで接続
apikeyを確認するためIBMCloudのコンソールのWatson Queryの画面で「サービス資格情報」を開きます。
サービス資格情報を開き、apikeyをコピーします。
clpplusを起動して、connect @dsnalias using (apikey xxxxx)
のようにして接続します。
@dsnalias
には、db2cliで設定したdsn aliasを指定します。今回は、@dashdb
になります。
以下のように接続します。
% source /Applications/dsdriver/db2profile # 環境変数を設定していなければ実行する
% clpplus -nw # -nwはウィンドウを起動せずターミナル内で起動するオプション
CLPPlus: バージョン 1.6
Copyright (c) 2009, 2011, IBM CORPORATION. All rights reserved.
SQL> connect @dashdb using ( apikey xxxxxxxxxx )
データベース接続情報 :
---------------------------------
ホスト名 = xxxx.databases.appdomain.cloud
データベース・サーバー = DB2/LINUXX8664 SQL110560
ローカル・データベース別名 = DASHDB
ポート = 30207
clpplusで以下のようにSQLを実行できます。
SQL> set linesize 180
SQL> select tabschema, count(*) from syscat.tables group by tabschema;
TABSCHEMA 2
-------------------------------------------------- ---------------------------------
AUDIT 8
CACHEADMIN 17
CACHESYS 10
DB2INST1 2
DVSYS 39
DV_IBMID_120000PFMV 3
HIVE 78
IBMCONSOLE 269
IBM_RTMON 11
SYSCAT 159
SYSHADOOP 12
SYSIBM 184
SYSIBMADM 184
SYSPUBLIC 112
SYSSTAT 9
SYSTOOLS 24
16 個の行が取り出されました。
SQL> values user;
1
--------------------------------------------------
DV_IAM_SERVICEID_3BE108A1_09DC_4E05_A08C_D917ECF17
672
DB250000I: コマンドは正常に完了しました。
SQL> set current schema = 'DV_IBMID_120000PFMV';
DB250000I: コマンドは正常に完了しました。
SQL> list tables -- 事前に作成しておいた仮想オブジェクト(TAB2,TAB3はDB2 on Cloudの表、tab10はCOS上のCSVファイル)
表/ビュー タイプ スキーマ 作成時間
-------------------- --------------- --------------- --------------------------
TAB2 N DV_IBMID_120000 2021-12-31 00:04:14.660969
PFMV
TAB3 N DV_IBMID_120000 2021-12-18 05:28:05.632446
PFMV
tab10 T DV_IBMID_120000 2021-12-18 05:32:58.417265
PFMV
3 個の行が取り出されました。
SQL>
参考情報
Connecting and authenticating to the Watson Query service
https://dataplatform.cloud.ibm.com/docs/content/dvaas/auth-usercred-dv.html
Command line processor plus (CLPPlus)
https://www.ibm.com/docs/ja/db2/11.5?topic=commands-command-line-processor-plus-clpplus