DBeaverから仮想化データに接続する手順

# 概略
- IBM のデータ仮想化機能であるIBM Data Virtualization（IDV：旧 Watson Query）は、多種多様なデータソースを仮想化し同列に扱うことができます。
- Db2でもOracleでもSnowflakeでも同じ仮想テーブルとして扱う事が可能になります。
- この記事では、仮想化されたデータを、データベースクライアントソフトであるDBeaverを使って確認してみます。
- なお、SaaS版のデータ仮想化へのDBeaverからの接続手順は、[こちらの記事](https://qiita.com/nishikyon/items/41ec3389b60a071c7c92)をご確認ください。


# 環境
- 手元の端末 ： MAC Book Pro
- 端末にインストールされたデータベースクライアント ： DBeaver Community Edition
- データ仮想化ソフトウェア ： IBM Data Virtualization（旧 Watson Query）
- データプラットフォーム ： Cloud Pak for Data （CP4D） 4.7.2
- コンテナプラットフォーム　：　Openshift Container Platform 4.12
- データプラットフォームがデプロイされたIaaS ： IBM Cloud （上で稼働しているVMWare）

# 手順

## 接続先の確認

- CP4Dの管理画面左上ハンバーガーメニューから、「データ」→「データ仮想化」をクリックします。

![スクリーンショット 2023-09-12 13.31.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/a79864ea-6455-abea-5fe3-31088aa1ca77.png)

- 「データ仮想化」管理画面で、画面左上のドロップダウンメニューをクリックして、「管理」→「接続の構成」をクリックします。
![スクリーンショット 2023-09-12 13.38.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/735398b5-c52b-df4b-95cf-a59e112c5564.png)

- 接続に関する管理画面が出てきますが、ここで注目するのは画面の右側「接続構成リソース」です。
![スクリーンショット 2023-09-12 13.44.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/7fd068e5-c5d9-a16a-366a-3ebde5e04d19.png)

- 以下、印を付けた箇所を後の接続構成に使用します。
- なお、「ホスト名」の箇所については、CP4Dにブラウザでアクセスする際のURLを指定します。

![スクリーンショット 2023-09-12 13.50.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/3307c8f9-dd50-728e-4a46-85b0ac256695.png)



## SSL証明書の操作

### SSL証明書のダウンロード

- 「SSL証明書のダウンロード」をクリックします。
![スクリーンショット 2023-09-12 13.51.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/4f8f28b3-7932-743e-3585-c56ecceca477.png)


- dv-ssl.crt ファイルが手元のPCにダウンロードされます。

% ls -l ./dv-ssl.crt 
-rw-r--r--@ 1 shumpei.kubo  staff  1107  9  8 00:09 ./dv-ssl.crt
% 



### SSL証明書のPEM形式への変換

- OpenSSL コマンドでCRTファイルをPEMファイル形式に変換します。
- 一時的にDER形式に変換して、次にそのDERをインプットとしてPEM形式に変換します。

% openssl x509 -in dv-ssl.crt -out outtmp.der -outform DER
% openssl x509 -in outtmp.der -inform DER -out dv-ssl.pem -outform PEM

- PEM 形式に変換できました。

% ls -l ./dv-ssl.pem 
-rw-r--r--  1 shumpei.kubo  staff  1107  9 12 14:00 ./dv-ssl.pem

% cat dv-qiita.pem 
-----BEGIN CERTIFICATE-----
MIIDBTCCAe2gAwIBAgIRAP1Ug6MD3yVp7oZlfr5R2HwwDQYJKoZIhvcNAQELBQAw

〜中略〜

1LQ0XyI4q5c2
-----END CERTIFICATE-----
% 



## DBeaver側での操作

### DBeaver側での設定

- Dbeaver を起動して画面左上の「新しい接続」（コンセントのアイコン）をクリックします。
![スクリーンショット 2023-09-12 14.10.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/c1f6c9c0-d668-df69-14ab-e1f2c5db1ae6.png)

- Db2 を選択して、「次へ」をクリックします。
![スクリーンショット 2023-09-12 14.20.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/2cc68cce-f067-fd21-f4e3-357dc8fab18d.png)

- 「接続設定」画面の「一般」タブにて、Connect by Host 、を指定し、
- 上記「接続先の確認」で確認したHost、Port番号、Database名、ユーザ名、パスワードを入力します。
    - ID,パスワードはCP4D管理画面にログインする際のものです。
![スクリーンショット 2023-09-12 14.29.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/1505e991-8a67-b9c2-546a-e9ff11dee0a3.png)

- 「接続設定」画面の「ドライバのプロパティ」タブにて、以下を設定します。
    - encryptionAlgorithm : 2
    - securityMechanism : 9
    - sslCertLocation : [先程作成したpemファイルのローカルのPath]
    - sslConnection : true
![スクリーンショット 2023-09-12 14.49.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/c0f6cc5e-d934-63a0-3a40-cea23f250fd3.png)




### DBeaver側からの接続

#### 接続テスト

- 画面左下の「テスト接続」をクリックして、接続された事を確認します。
- （ポップアップウインドウに、「接続済み」を確認します。）
![スクリーンショット 2023-09-12 14.36.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/45271723-5fa5-b6a2-72b7-bef0a6efd007.png)

#### 仮想化データの確認

- 例えば以下、ブラウザでCP4Dのデータ仮想化画面を確認し、「仮想化データ」画面にて既に仮想化データを確認できる場合
- 以下サンプルとして「注文メソッドデモ」仮想テーブルを確認します。

![スクリーンショット 2023-09-12 14.46.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/9a070d05-3ed1-6185-4400-f5f594c41873.png)


![スクリーンショット 2023-09-12 14.46.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/6706cbcb-8820-212e-4a09-febea5ea2dfe.png)


- DBeaver では、Schema配下の該当ユーザ（今回はadmin）以下のNicknames以下に該当する仮想化データを確認できます。

![スクリーンショット 2023-09-12 14.47.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295123/30526276-c2c3-a824-9306-c5d21313b3e8.png)