[CDGC] Oracle のスキャン

# はじめに
<!-- ★『インフォマティカが提供する、 CDGC (データガバナンスとデータカタログ)を使って』までは定型文 -->
[インフォマティカ](https://www.informatica.com/jp/)が提供する、 [CDGC](https://www.informatica.com/jp/products/data-governance/cloud-data-governance-and-catalog.html) (データガバナンスとデータカタログ)を使って、Oracle からメタデータを取得(スキャン)するためのガイドです。2023/08 時点の情報を元にしています。

カタログソースの表示
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3521395/d3046724-edf2-d71b-e1fb-043e94c3b698.png)

ビューのリネージュ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3521395/6c74881b-3db9-a2dd-ad4c-7b91336cdd6a.png)

 
<!-- 各チャプター -->
 
# 事前準備
<!-- ★ここはすべて定型文であり変更は不要 -->
CDGC がセットアップ済みであり、メタデータコマンドセンターのメニューにアクセスできるライセンス、およびユーザロール、ユーザであることを確認してください。[こちらのナレッジベース](https://knowledge.informatica.com/s/article/FAQ-CDGC-apps-licenses-roles?language=ja)より手順をご確認ください。
 
# 前提
<!-- ★ソース側のユーザーや権限、接続前提条件を書く -->
#### メタデータの抽出
以下の権限を割り当てたユーザーを準備します。必要に応じて Oracle 管理者の方とご相談ください。
- Oracle データベースへのアクセスに使用するデータベースユーザーアカウントに CONNECT 権限を付与します。
- 以下のいずれかの方法で SELECT 権限を付与します。
  - 事前定義の SELECT_CATALOG_ROLE ロールを付与します。
  - 次の権限を付与します:
    - select on SYS.DBA_ARGUMENTS
    - select on SYS.DBA_COL_COMMENTS
    - select on SYS.DBA_COLL_TYPES
    - select on SYS.DBA_CONS_COLUMNS
    - select on SYS.DBA_CONSTRAINTS
    - select on SYS.DBA_DB_LINKS
    - select on SYS.DBA_DIRECTORIES
    - select on SYS.DBA_EXTERNAL_LOCATIONS
    - select on SYS.DBA_EXTERNAL_TABLES
    - select on SYS.DBA_MVIEWS
    - select on SYS.DBA_OBJECTS
    - select on SYS.DBA_OPBINDINGS
    - select on SYS.DBA_SEQUENCES
    - select on SYS.DBA_SOURCE
    - select on SYS.DBA_SYNONYMS
    - select on SYS.DBA_TAB_COLUMNS
    - select on SYS.DBA_TAB_COMMENTS
    - select on SYS.DBA_TABLES
    - select on SYS.DBA_TRIGGERS
    - select on SYS.DBA_TYPE_ATTRS
    - select on SYS.DBA_USERS
    - select on SYS.DBA_VIEWS
    - select on SYS.NLS_SESSION_PARAMETERS

#### データプロファイリング
Oracle でデータプロファイリングを実行するには、プロファイリングするテーブルとビューに SELECT 権限を付与します。

# スキャン対象
<!-- ★マニュアルから抜粋し、日本語訳する -->
Oracle から下記のメタデータを取得可能です。
- データベース
- スキーマ
- テーブル
- ビュー
- カラム
- ストアドプロシージャ
- 関数
- パッケージ

また、以下のSQL 機能も使用可能です:
- 静的 SQL
- PL/SQL
- パラメータ・トレース付きのプロシージャー・コール
- メタテーブル付きの動的SQL

以下の Oracle オブジェクトに対してデータプロファイリングを実行できます:
  - テーブル
  - ビュー
 
# 接続設定
<!-- ★先頭1行に関しては定型文、その後はソースに応じて変更する。infoやwarnは検証やKBから記載する -->
CDGC でソースシステムからからメタデータを抽出するには前提にあるようなソース毎の要件を満たしたユーザーで接続を作成する必要があります

:::note info
接続の作成に関しては、[ナレッジベース(KB)](https://knowledge.informatica.com/s/article/How-to-Create-a-connection-for-a-catalog-source-in-CDGC?language=ja) の手順もご確認ください
:::

:::note warn
接続を作成する際に Secure Agent を指定する必要があります。もし、まだインストールされていない方は[ナレッジベース (KB)](https://knowledge.informatica.com/s/article/HOW-To-Install-a-secure-agent-on-a-Linux-machine?language=ja) の手順を参考に Secure Agent をインストールしてください。
:::

以下は、接続の設定例です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3521395/9024e180-c9c4-55ed-d9a3-0d98dd10f905.png)

 
# スキャン設定
<!-- ★基本的にはStep by Stepでスクリーンショットを記載する -->
詳細のステップは、[マニュアル](https://docs.informatica.com/data-governance-and-quality-cloud/metadata-command-center/current-version/catalog-source-configuration/oracle.html)、[How to Library](https://knowledge.informatica.com/s/article/How-To-Configure-a-Oracle-Resource-In-CDGC?language=en_US) も合わせて参照してください。
 
1.メニューから「メタデータコマンドセンター」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3521395/77c2118e-0515-30b3-8bc2-2aba93cc9640.png)

 
2.メタデータコマンドセンターから「新規」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3521395/9b18ff40-c6cf-4cf7-5316-8f34c13faaaf.png)

 
3.カタログソースから「Oracle」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3521395/ab3f16c5-d773-d843-a1df-b95d46ae5cdd.png)
 
4.Oracle への接続情報を選択し「次へ」をクリックします
必要に応じて、「テスト接続」にて、正常に接続できることを確認してください
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3521395/5caf9850-836c-3c58-8508-309f3da99cfc.png)
 
5.ランタイム接続から利用する Secure Agent を選択、必要に応じてフィルタによる絞り込みを実施します。メタデータ変更オプションは今回は「削除」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3521395/342a8d96-9c35-5c94-f399-0731260f58d0.png)

:::note warn
メタデータ変更オプションのチェック項目の日本語訳が正しくなく、[修正予定](https://network.informatica.com/s/ideadetail?id=0876S000000wpVNQAY)がまだ先になりますので簡単に補足しておきます。この設定は既にカタログに取り込まれたアセットがソースシステム側で削除された場合にどう処理されるかを決定します。それぞれの設定に対して以下の様な動作となります。

| オプション |動作|
|:-:|:--|
|保持|カタログソースからオブジェクトが削除されたり、フィルタ条件の変更でオブジェクトがヒットしなくなった場合でも、既にカタログ内に存在する変更前のアセットはカタログに保持されます。|
|削除|カタログソースからオブジェクトが削除された場合及びフィルタ条件の変更でオブジェクトがヒットしない場合、メタデータがカタログから削除されます。|

つまり、過去に一度でもアセットとして存在していたら残したい、という場合には「保持」を設定する必要がありますが、現在の最新のデータベース側の最新状態、フィルタ条件に応じたアセットを抽出、検索したい場合、「削除」を設定します。
:::

 6.データプロファイリングの設定
データプロファイリングを設定して、Oracle ソースシステムから抽出されたメタデータに対してプロファイルを実行します。
 「データプロファイリングとデータ品質」タブをクリックし、データプロファイリングの右側の矢印をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3521395/675634f0-7d73-ec10-1206-ab2a1a1ea73a.png)

必要に応じて、任意のパラメータ設定を実施します。ランタイム接続の選択とパラメータを設定し、保存をクリックします。
「署名と値を保持」で、値の頻度と呼ばれる実データのサマリを取得できます。プロファイリングスコープを「完全」にすることでメタデータの変更の有無に関わらず、プロファイリングが実施されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3521395/c60f12d9-a0b8-ca56-b17d-0ad9d0133f34.png)



7.「関連付け」「スケジュール」は必要に応じて設定しますが、今回はすぐにスキャンを実施したいため、「保存」をクリックし、「実行」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3521395/d52b61e7-1f4e-1d9d-3d3d-e62bf498a8ff.png)


8.実行のスコープの画面で、「実行」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3521395/19835db2-24c1-7efc-3b71-da318af3dc26.png)

9.ジョブ監視画面に自動で遷移するので、しばらく待ってステータスが完了になったことを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3521395/9e93849a-2617-1cba-18f5-6b9bb3c61e26.png)


 
# 結果の確認
<!-- ★CDGC側からの見た目のサンプルを表示。アセット一覧とプロファイリング結果 -->
- 取得したアセットの一覧を表示
CDGC の画面から、該当のカタログリソースが閲覧できることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3521395/d3046724-edf2-d71b-e1fb-043e94c3b698.png)
- データプロファイリングの結果を表示
テーブルのカラムを選択して、プロファイリングの結果を確認します。
この例は電話番号データで、パターンや値の頻度の情報から、データの形式やそのデータが全体に占める割合などを確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3521395/ba58d82e-f035-c60a-cae5-86d6c0597e02.png)
 
# Tips
<!-- ★KBや経験より記載を実施。今後の予定などがあればそれも記載する -->
- 処理に失敗する場合、[ナレッジベース(KB)](https://knowledge.informatica.com/s/global-search/%20#t=KB&sort=relevancy&f:@athenaproduct=[Cloud%20Data%20Governance%20and%20Catalog])を参照し、エラーメッセージから検索を実施してください。
- プロファイリングで日本語などのマルチバイト文字が化けてしまう場合、[こちらのナレッジベース](https://knowledge.informatica.com/s/article/510404?language=ja) の手順をお試しください。
 
# 参考文献
<!-- ★URLをそれぞれのカタログソースに応じて変更する -->
- [**マニュアル** *ログインが必要](https://docs.informatica.com/data-governance-and-quality-cloud/metadata-command-center/current-version/catalog-source-configuration/oracle.html)
- [**ナレッジベース(KB) - How to Library(H2L)** *リンクのPDFを参照してください](https://knowledge.informatica.com/s/article/How-To-Configure-a-Oracle-Resource-In-CDGC?language=en_US)
- [**Youtube** *日本字幕設定が可能です](https://www.youtube.com/watch?v=QP8IBKUkffg)