Watson Queryとデータカタログの関係について

# はじめに

Watson Query では、自分で取り込んだデータ以外にも、データカタログに登録されているデータを検索することが可能です。

ここでは、カタログに取り込んだデータが、Watson Query からどのように見えるかを確認しましたので、ご紹介します。

# 1. データカタログとWatson Queryからの検索について
ここでは、データカタログに登録したテーブルに対して、ビジネス用語を付与し、その用語を使って、Watson Queryから検索を行います。
# 1.1. データカタログへの登録

まず、WKC (Watson Knowledge Catalog) に「CUSTOMER」のテーブルを「WQ+WKC_TEST1」カタログに登録します。
次に、登録したデータの「C_NAME」カラムにビジネス用語として、「顧客名」を登録します。
その他設定内容は以下のとおりです。
![CUSTOMERテーブル登録内容  2023-06-25 17.04.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13492/56a0d4f5-6b83-9079-3916-dde19e657499.png)

# 1.2. Watson Query からの検索

1. CP4Dのホーム画面から、「データの仮想化」をクリックし、Watson Queryを起動します。
2. メニューから「仮想化」を開きます。
2. フィルター条件として「ビジネス用語」を選び、検索ウィンドウに先ほど登録したビジネス用語の「顧客名」を入力します。
2. 検索結果には、「顧客名)」を含んだテーブル「CUSTOMER」が表示されます。
![ビジネス用語検索_仮想化画面 2023-06-25 16.26.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13492/0a1bd1db-8f75-824c-3328-c1863703be84.png)

2. このテーブルを仮想化する場合は、左端のチェックボックスにチェックを入れて「カートに入れる」ボタンをクリックします。仮想化の詳細については、[Watson Query で、Db2とSnowflakeのデータを仮想化して結合する。](https://qiita.com/Shumpei_Kubo/items/ecd02072e6eb5f84b499)をご参照ください。


# 2. データカタログのアクセス権とWatson Queryの検索

先に結論から言うと、ユーザーにデータカタログへのアクセス権が付与されていない場合は、Watson Query から検索することはできません。ここでは、確認手順と結果を記載します。

# 2.1. データカタログからユーザー権限を外す。

確認手順は、以下の通りです。

1. 先ほどとは、別の管理者でログインします。
1. [データカタログとWatson Queryからの検索について](#1.)で使用したカタログ[WQ+WKC_TEST1]に移動します。
1. 「権限付与」のタブで当該ユーザー「NW」を外します。
![権限削除-1 2023-06-25 16.45.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13492/b4c6bb89-b5ad-c027-9c96-8610ac96a2d9.png)

1. 確認画面が出ます。
![権限削除-2 2023-06-25 16.46.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13492/95ff1afb-973e-c683-0a24-f167af30ad5c.png)

1. カタログ一覧に戻ります。この時 WQ+WKC_TEST1 が無いことが確認できます。
![WQ+WKC_TEST1が消えた 2023-06-25 16.47.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13492/47061792-6a08-e7c0-19d6-adc72ba67e66.png)


1. ログアウトします。

# 2.2. Watson Query からの検索確認

1. [データカタログとWatson Queryからの検索について](#1.)ユーザーでCP4Dにログインし直します。
1. CP4Dのホーム画面から「データ仮想化」をクリックし、Watson Queryを起動します。
1. メニューから「仮想化」を開きます。
1. フィルター条件として「ビジネス用語」を選び、検索ウィンドウに先ほど登録したビジネス用語の「顧客名」を入力します。
2. 検索結果には、「顧客名」を含んだテーブル「CUSTOMER」が表示されなくなりました。
![検索できない 2023-06-25 16.56.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13492/cb07ea99-53fa-a3d5-6552-f145900078f3.png)

# 2.3. カタログの権限を戻す
確認が終わったら、元の設定の戻します。
ここでは簡易な手順の紹介だけとします。

1. [データカタログからユーザー権限を外す。](#2.1.)で使用した管理者でログインします。
1. [データカタログからユーザー権限を外す。](#2.1.)で使用したカタログ[WQ+WKC_TEST1]に移動します。
1. 「権限付与」のタブで当該ユーザーを追加します。
1. ログアウトします。

# 3. 複数のデータカタログに登録したデータの検索
テーブルは、複数のデータカタログに登録されるケースがあります（例えば、テーブル「CUSTOMER」をカタログ「WQ+TEST1」とカタログ「WQ+TEST2」に登録するなど）。
この時、Watson Queryから検索した場合に、どの様に見えるかを確認します。

# 3.1. 同一テーブルを別カタログに追加

今回は、WQ+TEST1, WQ+TEST2 ともに、以下のようにCUSTOMERテーブルを登録しました。
![CUSTOMERテーブル登録内容  2023-06-25 17.04.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13492/2f8f22bd-2d8e-91cf-8a94-0d8faaad8f72.png)

# 3.2. Watson Query からの検索確認

1. CP4Dのホーム画面から、「データの仮想化」をクリックし、Watson Queryを起動します。
1. メニューから「仮想化」を開きます。
1. フィルター条件として「ビジネス用語」を選び、検索ウィンドウに先ほど登録したビジネス用語の「顧客名」を入力します。
1. 出力結果は、[1.2. Watson Query からの検索](#1.2.)と**同じく**、**１つのテーブル**のみ表示されます。複数のカタログに登録されていても、検索結果に表示されるテーブル数は１つになります。

![複数カタログに同一のテーブルがある場合2023-06-25 17.10.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13492/e8af9b9d-ee75-1b12-3dc8-00cbc4fe45b6.png)

# 4. まとめ
簡単ではありますが、Watson Query と Watson Knowledge Catalog との関係について調べてみました。

Watson Query の検索では、カタログに対するアクセス権限によって、参照できるテーブルが異なります（アクセス制限があるカタログに登録されているテーブルは参照できない）。

複数のカタログに登録されているテーブルを検索した時に表示されるテーブルがどのカタログに属しているかを検索結果から知ることはできません。