Cognos Analytics on CloudからWatsonQueryにアクセスする

当記事はCognos Analytics on CloudからIBM Cloudのデータ仮想化サービス[Watson Query(SaaS版)](https://cloud.ibm.com/catalog/services/watson-query)に接続する方法について説明します。
外部のBIツールなどからWatson Queryには、Db2のJDBCドライバーが使用できればでアクセスすることができます。ただしCognos AnalyticsからはIBM Big Queryのドライバーでアクセスします。その際、useridではなくAPIKEYが必要です。


# 1. APIKEY, JDBC接続パラメータの準備

今回必要なのは以下の4つです。
- APIKEY
- JDBC接続パラメータ(この中にはhost名、port番号、db名も含みます)

### 1-1.  APIKEYは以下の2つの方法、どちらかで準備してください。
- [IBM Cloud APIKEYの作成(取得)方法](https://qiita.com/nishikyon/items/fa8b951267efbe911fe7)
    - これはIBM CloudのIDに紐ついたAPIKEYで権限はそのIDと同じになります
- [Watson QueryのAPIKEYを含む資格情報の作成と接続情報の取得](https://qiita.com/nishikyon/items/b8bed0d006ae15088780)
    - こちらはWatson Query用のAPIKEYでManagerかDataAccessかが選べます

### 1-2.  JDBC接続パラメータは以下のどちらかで取得してください。
#### A. データ仮想化の接続情報から取得
##### A-1. ナビゲーションメニューから「データ仮想化」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294516/089b1561-3f86-0e39-2117-59752e2f6b81.png)

##### A-2. データ仮想化画面のドロップダウンメニューから「接続の詳細」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294516/7c542dbc-e331-e865-46fe-0b4e24afc8dd.png)

##### A-3. 接続構成リソースから以下を取得します
- JDBCストリング

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294516/1c06abe2-e4cc-668f-8d5e-c6b0973f35ca.png)

例
```
jdbc:db2://00000000-9999-9999-9999-xxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxx.databases.appdomain.cloud:nnnnn/bludb:apiKey=<your_apiKey>;securityMechanism=15;sslConnection=true;
```

#### B. 作成した「サービス資格情報」から取得
[Watson QueryのAPIKEYを含む資格情報の作成と接続情報の取得](https://qiita.com/nishikyon/items/b8bed0d006ae15088780)で資格情報を作成した場合は、その情報から取得できます。

##### B-1.作成した資格情報の名前(鍵名)の横のvをクリックして表示し、以下の情報を取得します。
参考: [Watson QueryのAPIKEYを含む資格情報の作成と接続情報の取得-6. APIKEYの表示](https://qiita.com/nishikyon/items/b8bed0d006ae15088780#6-apikey%E3%81%AE%E8%A1%A8%E7%A4%BA)

資格情報の`jdbc`の中の以下の情報を取得します:
- jdbc_url_api_key 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294516/14084595-318a-a2af-36af-6f2c085c1901.png)

例
```
jdbc:db2://00000000-9999-9999-9999-xxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxx.databases.appdomain.cloud:nnnnn/bludb:apiKey=<APIKEY>;securityMechanism=15;sslConnection=true;
```

### 1-3. 取得したAPIKEYをJDBC接続パラメータにセット
1-2 Aの方法で取得した場合は`<your_apiKey>` 
1-2 Bの方法で取得した場合は`<APIKEY>` 
部分を1-1で取得したAPIKEYに置き換えてください。

例: APIKEYが`x-YYYYYYYYYY_zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz`だった場合は
```
jdbc:db2://00000000-9999-9999-9999-xxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxx.databases.appdomain.cloud:nnnnn/bludb:apiKey=x-YYYYYYYYYY_zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz;securityMechanism=15;sslConnection=true;
```
となります。

# 2. Congnos: 「データー・サーバー接続」の作成
### 2-1. Cognos　の右上のメニューから「管理」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294516/0abd405b-5816-6958-5218-74abb0f4edd5.png)

### 2-2. 「データー・サーバー接続」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294516/c86c5775-6c73-6f96-a7d0-fea97a757411.png)

### 2-3. 右上の「＋」(データ・サーバーの追加)をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294516/d5ba4210-89bd-30f4-1e33-459958effaa7.png)

### 2-4.タイプの選択で「IBM Big SQL」をクリック
IBM Db2ではなく「IBM Big SQL」を必ず選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294516/85af94fe-db32-0e62-f09d-5255a5cd32cf.png)


### 2-4.IBM Db2 接続の編集 の　「JDBC URL」に1-3で作成したAPIKEY入りのJDBCパラメータをセット
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294516/7c572375-d16e-e865-2969-46c1c30cfe6c.png)


セットが完了したら、右下の「テスト」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294516/d418e154-35fb-a89e-7f72-586779491c5f.png)

テストが「完了」になったことを確認し、「新しいデータ・サーバー接続」の右にマウスポインターを持っていき、鉛筆マークをクリックして、接続名をわかりやすいものに変更します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294516/e1e93c9d-67bb-388a-5bb7-50ffb409d8f0.png)



「保存」をクリックして、一旦接続設定を保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294516/f7927dc6-8abf-5f05-b68f-f5882e656f8b.png)


### 2-5.スキーマのセット

「スキーマ」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294516/29c2309e-00aa-1076-f945-76efe0790ddd.png)

使用したいテーブルのあるスキーマ名にマウスカーソルを重ねると、右側に・・・が表示されるので、クリックし、表示された「メタデータのロード」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294516/36cafbfa-8522-0f85-066b-11601a3e80d1.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294516/41fe1ece-51be-ce31-c780-44a4ed55c44d.png)

完了まで待ちます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294516/47fff66d-12a5-279e-86e7-ae897eb7d52b.png)

チェックが入ったら完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294516/7d1b5e02-5828-dd08-64ce-6662e26c6919.png)


# 3. アクセスの確認

### 3.1 Cognosの右上のメニューから「新規」→「データ・モジュール」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294516/37f76041-11bf-c8f2-54e1-17eff4c78272.png)

### 3.2 「ソースの選択」画面の右のアイコン、「データ・サーバーとスキーマ」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294516/4ccc9e0f-0a0b-cf6c-84a1-d25f00269c2f.png)

### 3.3 2で作成したデータ・サーバー名をクリック 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294516/6c0f20b6-de7d-2da2-af40-b2e2cbcfb8b8.png)

### 3.3 2.5で設定したスキーマ名を選択後、OKをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294516/a87c2337-1f7b-46c3-5b05-787bc2258bc5.png)


### 3.4 データをセット
テーブル名をクリックしたりして、欲しいデータにします。
テーブル名をクリックすると、内容も表示され、アクセスできていることがわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294516/13870cbd-6511-446d-4389-2756a1be1180.png)


### 3.5 保存
必要に応じで、右上の保存アイコン（フロッピーディスクのアイコン、フロッピーディスクは皆さん知っているのかな？？）をクリックして、データ・モジュールを保存してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294516/58018ff2-c72e-9600-5da5-42cdc98e473b.png)

以上です。