[CDGC] これから始める Cloud Data Governance and Catalog(CDGC)

# はじめに
本記事は弊社の Intelligent Data Management Cloud (IDMC) でデータカタログをこれから始めたい人向けに書いています。例えば、既に IDMC でデータ統合 (CDI) などは使っているけど、Cloud Data Governance and Catalog(CDGC, データガバナンス&データカタログ) は使った事がなかった、もしくは IDMC で契約したばかりで、「これから CDGC を触ろう、触らないといけないけども、何すればいいの？」という立場の方を想定しています。

というのも、製品もしくは機能を触り始めた段階で[マニュアル](https://docs.informatica.com/data-governance-and-quality-cloud/data-governance-and-catalog/current-version.html)の最初から読んでいく、というのはオーソドックスで王道なアプローチではあると思うのですが、時間もかかりますし、大変ですよね。

なので、本記事では "もっとざっくり流れやどんな感じか知りたいんだ！" 派の皆様へ、最短で、ざっくりと「CDGCのはじめ方」をお伝えできればと思っています。


# 目次
まずは全体の作業の流れを以下にざっくり纏めてみました。基本的には初期設定から基本的な情報を CDGC で検索できるようになるまでの流れを説明しています。各項目での個別の細かな手順は以降で説明しつつ、かつ、本記事が長くなりすぎないように日本語の KB や他の Qiita の記事を交えて紹介させて頂きます。


1. ユーザー、ロールの作成
1. CDGC をプロビジョニング
1. Secure Agent の作成
1. Secure Agent の設定
1. ソースシステムへの接続を作成
1. メタデータ抽出用の定義を作成
1. カタログを検索



では、さっそく IDMC でデータカタログを最短コースで始めていきましょう！

# 1.ユーザー、ロールの作成
まずは IDMC にログインして CDGC を操作できるユーザーを作成する必要があります。アカウント管理者様へ相談し、以下の様なロールを持ったユーザーを作成してもらいましょう。

* ガバナンスユーザー
* ガバナンス管理者

以下はユーザーの設定画面のサンプルです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3520029/36786f45-654b-795b-9b6c-82b1e41b1613.png)


::: note info
以降で説明する予定の SA の管理や接続定義などもひっくるめて行いたい方は上記に加え、"デザイナ" を追加して下さい。
:::

# 2.CDGC をプロビジョニングする
それでは早速 IDMC にログインして CDGC にアクセスしてみましょう。"マイサービス" から "データガバナンス&データカタログ" をクリックします。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3520029/a3888882-bc06-6a72-a831-0eda45780e3a.png)

すると、以下の様な画面が出てきたのではないかと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3520029/1014f638-7db0-8074-0ed6-a7a337723c91.png)

CDI や他のサービスと少し違い CDGC は初回アクセス時に利用開始の手続き(プロビジョニング)が必要です。ですので、上記画面で "はい、プロビジョニングする" をクリックしてください。プロビジョニングに関しては少しお時間が掛かります。 もし、数時間たっても変わらないなどがあれば、サポートまでお問い合わせください。

## 3.Secure Agent の作成
CDGC のプロビジョニングを待っている間に Secure Agent をインストールしてしまいましょう。インストール手順はどうしても少し手順が長めなので、詳細は以下の画面ショット付きの記事を参考にしてみてください。

  [[IDMC] Secure Agent のインストール手順（Linux編)](https://qiita.com/daichi-kaneko/items/b3a15116b35dba676b68)
  [[IDMC] Secure Agent のインストール手順（Windows編）](https://qiita.com/daichi-kaneko/items/c492878daf12f7c33982)
  
:::note warn
注1
本記事に関してはあくまでも "現行環境" で "始める、試す" 事にフォーカスしていますので、開発・検証環境のような運用に影響のない環境での作業を想定しています。評価、テストのみであれば CDI が使用している SA で CDGC を有効にして使い始めることも選択肢の一つかと思いますが、一方で、本番もしくはそれに準ずる環境の場合、下記ドキュメントなども参考にしていただき、サイジング、性能評価を実施をするようにお願いします。

[Sizing recommendation and performance optimization for Metadata Command Center](
https://docs.informatica.com/data-governance-and-quality-cloud/metadata-command-center/h2l/1651-sizing-recommendation-and-performance-optimization-for-meta/abstract.html)

:::

:::note warn
注2
現時点で共有エージェントはサポートしていない点に注意が必要です。
[FAQ: Is metadata extraction supported using the shared secure agent group in the sub orgs CDGC?](https://knowledge.informatica.com/s/article/000220309?language=en_US)
仮に共有エージェントでスキャンを実行した場合にはエラーになります。
[FAQ: Why does running a Metadata extraction job on a shared secure agent fails in CDGC?](
https://knowledge.informatica.com/s/articlepreview?c__number=FAQ-Running-a-Metadata-extraction-job-on-a-shared-secure-agent-fails&language=ja)
:::

# 4.Secure Agent の設定
## 4-1.サービスの有効化
Secure Agent のインストールが完了するとデフォルトではデータ統合に必要なサービス(Data Integration Service など)の幾つかが自動で起動してきます。ただ、CDGC が必要とするサービスはデフォルトでは有効化されませんので、手動でサービスを有効にする必要があります。下記の様に "管理者" => "ランタイム環境" で対象の SA を選択し、右側の "・・・" から、"サービス、コネクタの有効化または無効化" を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3520029/30e5a774-7887-d0ae-ce6d-07773410cdc9.png)


上記の順で選択すると以下の画面が出てきますので、"Data Governance and Catalog" を選択します。同手順は [KB 000220795(日本語)](https://knowledge.informatica.com/s/article/HOW-TO-Enable-Data-Governance-and-Catalog-for-the-secure-agent-in-IICS?language=ja) でも紹介しておりますので、確認頂ければと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3520029/0c018047-e7c7-fe5c-11d7-30ade1ee23e1.png)


::: note info
Secure Agent は IDMC が提供している各アプリケーションに対応するサービスをマイクロサービスとして実装している為、使う機能を選んで有効化する必要があります。
:::


## 4-2.コネクタの有効化
また、今度は "コネクタ" タブに移動し、下記画面の様に抽出したいカタログリソースへの接続も有効にしておく必要があります。今回は Azure Synapse Analytics 接続を使用してみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3520029/57e784de-d11e-70e7-007b-2d95e8eb0f43.png)



:::note info
デフォルトでも Oracle Database 及び Microsoft SQL Server などのいくつかのコネクタは使用できるようになっていますが、それ以外のコネクタは必要に応じて手動で有効にする必要があります。
:::


# 5.ソースシステムへの接続を作成
次にメタデータを抽出したい対象システムへの接続を定義する必要があります。接続に関してはマイサービスの "管理者" から "接続" をクリック、"新しい接続" で作成できます。先程、Azure Synapse Analytics コネクタを有効化しましたので、以下は Azure Synapse Analytics で接続情報を設定した例になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3520029/ca774e6e-e7f0-c08b-0c07-905340479381.png)


"接続のテスト" で問題なければ設定はこれで完了です。別のソースシステムに接続したい場合、項目、手順の詳細は製品ごとに異なりますので、[マニュアル](https://docs.informatica.com/integration-cloud/data-integration-free-and-paygo/current-version.html?subsection=Connector+Guides)を参照してください。



# 6.メタデータ抽出用の定義を作成
ここからは対象のシステムからデータをカタログ化するための設定を行います。IDMC のマイサービスから "メタデータコマンドセンター"(以降、MCC)をクリックします。



![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3520029/d936128b-2986-c917-6392-37fae4153fa7.png)



え、"データガバナンス&データカタログ" をクリックするんじゃないの？と思われた方もいるんじゃないでしょうか。なので、ここで用語、機能について補足をさせて下さい。データカタログと用語では一括りにされていても IDMC のサービスレベルで見てみると、役割ベースで以下の 2 つの機能に分れて実装されています。

<table>
<thead>
<tr><th>サービス名<th>省略名<th>役割
<tbody>
<tr><td>Metadata Command Center<td>MCC<td>どのリソースからメタデータを取得するのか、プロファイルしてデータ分析をするのかなどを定義するサービス。なので、この UI では対象リソースへの接続を指定したり、スキャンしたいスキーマを指定したり、どういったデータを抜き出し、カタログ化するかを定義する。
<tr><td>Data Governance and Catalog<td>CDGC<td>MCC の定義を元にスキャンされたメタデータや、プロファイルの結果を確認できるサービス。また、スキャンしたアセットに対して説明や用語を補足したり、データを分類したり、カタログで検索するユーザーに向けて分かりやすく補足、エンリッチさせる事が出来る。
</table>

つまり、カタログ化したいソースシステムの定義は MCC で、カタログ化した結果は CDGC で確認する流れになります。


## 6-1. リソースの新規作成
それでは改めて、"メタデータコマンドセンター" をクリックして、メタデータ抽出用の設定を行いましょう。以下は MCC にログイン後、左上にある "+新規" ボタンをクリック、"カタログソース" タブをクリックした際の画面です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3520029/7ecf6bc6-91f3-8695-aad6-f98905dfec46.png)

この画面では様々な利用可能なタイプのスキャナが表示されていますが、今回は接続と同じ Azure Synapse Analytics を選択します。任意の "名前" を入力し、"接続"をドロップダウンリストから選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3520029/7507a2e5-3b40-af29-f7a4-2e327af939ef.png)

ドロップダウンリストにはリソースタイプに応じた接続のみが表示されますので、先程作成した接続が見えているかと思います。そちらを選択すると、"テスト接続"が有効になりますが、先程、テスト接続しているのでスキップして、右上の "次へ" をクリックします。

## 6-2. "メタデータの抽出"の設定
"メタデータの抽出" 画面で "ランタイム環境" から [4.Secure Agent の設定](#4secure-agent-の設定) で作成した Secure Agent を選択し、他の設定は今回デフォルトのままとします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3520029/104ceb1d-00f5-029c-89ed-221336cc0606.png)

::: note info
※今回、フィルタ条件は設定しませんが、何らかの抽出条件がある場合には "フィルタ条件" にチェックを入れて条件付きで抽出する事が出来ます。また、チェックを入れるとリソースに応じたフィルタの設定例を表示してくれますので、必要に応じてフィルタ条件を設定してみてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3520029/a3576d23-0c22-ce68-590e-99a062f210e4.png)
:::

## 6-3. "データプロファイリングとデータ品質" の設定
こちらについては必須ではありません。まずはお使いのシステムからメタデータを抽出したい、という要件の場合にはこの手順をスキップできます。


ただ、メタデータの抽出に加え、含まれるアセットのデータの分布など、データの特徴も把握したい場合には "データプロファイリングとデータ品質" タブをクリックします。最初、"データプロファイリングの有効化" が有効化されていませんので、クリックして有効化します。また、ランタイム環境はメタデータ抽出と同様に [4.Secure Agent の設定](#4secure-agent-の設定) で作成した Secure Agent を選択します。


こちらにあるフィルタは抽出されてきたメタデータからプロファイルしたいメタデータに条件を付けることができます。今回も特に条件を付けずに全体をプロファイルします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3520029/6bd300ba-2920-38ca-a37a-e6173e5662dc.png)


"パラメータ" では主に以下の項目を設定します。

|パラメータ名|値の説明|
| ---- | ---- |
|実行モード|列が持つデータの分布(値の頻度)を見たい場合、"署名と値を保持" を選択します。"値の頻度" は CDGC の UI より以下のようにどのような値があるのか、その分布を確認できるようになっています。　　　　　　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3520029/01ec1c15-b14c-d0b6-abfc-484acdcad7c5.png)|
|プロファイリングスコープ|"差分"を設定した場合、前回のスキャンから変化がないテーブルはプロファイル用のジョブがスキップされます。一方で "完全" にした場合には常に毎回全てのアセットに対してプロファイル用ジョブが実行されます。|
|サンプリングタイプ|"全ての行" もしくは "N行を制限" もしくは "カスタムクエリ" を選択できます。全データに対してサンプリングをしたい場合、"全ての行" を選択します。一方で、LIMIT N 句の様な一定行数で制限したい場合に "N行を制限" を指定します。|

その他、データ分類やリレーション検出、用語集の関連付け等もありますが、本記事では一旦スキャンして結果を見えるようにするまでをスコープとしていますので、これらはスキップさせて頂きます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3520029/1649d74b-a47b-d301-96be-330282b19c23.png)

上記の様に右上の "次へ" をクリックし、"保存" を実行して頂く事で UI の "実行" がアクティベートされるかと思いますので、"実行" をクリックし、しばらく待機してみましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3520029/57609799-6a91-dfc4-1463-50c7d5b88b52.png)

上記は弊社側で実行した際の結果です。もし、想定と異なり、何らかのエラーになる場合、[このKB](https://knowledge.informatica.com/s/article/HOW-TO-Collect-Cloud-Data-Governance-and-Catalog-Information?language=ja)に従い、情報を集めて弊社サポートまでご連絡ください。

# 7.CDGC でスキャンした結果を確認する
スキャンが正常に完了したら、データベースから取得したメタデータの情報を見てみましょう。"マイサービス" から "データガバナンス & データカタログ" をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3520029/fec2157d-2af5-0415-2219-f7bdd4ea2821.png)

クリックすると "マイダッシュボード" の画面が表示されるかと思います。ダッシュボードの上にある検索ウィンドウからキーワードで検索する事が出来ます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3520029/078fc8b9-d6fc-db21-2c5c-963a338a2cf4.png)

もしくは、今時点でキーワードはないけどもスキャンしたリソースから自身で何があるか確認したい、などであれば、"テクニカルアセット" からスキャン済みのリソース一覧を確認できますので、そちらからドリルダウンしていくことも出来ます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3520029/99fd8b23-7c46-e53e-9a55-c0684f47e474.png)

それでは今回スキャンした、Azure Synapse Analytics のリソースを開いてみましょう。環境の都合上、ちょっとシンプルすぎるメタデータになっていますが、実際の環境ではテーブル、ビューなど、多数のアセットが見えている事と思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3520029/ad68b8ac-e90f-5395-0167-4c5138776759.png)

お使いの環境で抽出された任意のテーブルを開いて頂ければと思いますが、以下の様にテーブルの基本情報が表示されます。列などの詳細は "含まれる項目" タブから確認ができます。



::: note info
"含まれる列" とかの方がわかりやすいかとは思うのですが、テーブルの場合には列、テキストの場合にはフィールド、また他のは別の何か、という形になりますので、汎用化して今開いているアセットに "含まれる項目" というラベルになった経緯があります。
:::
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3520029/d9f0012c-c066-cd23-b0b9-1f3d7d5bae91.png)

それでは "含まれる項目" をクリックして、列の一覧を見てみましょう。以下の例では id 列を選択中ですが、右側には id 列の値の一部や、データ型、また、各列のデータがNullを含むか、一意か、どの程度重複を含むかなども確認が出来るかと思います。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3520029/d328cd16-4691-965e-30b4-bdfdcca35bdc.png)

もう1つ、別の列も見てみましょう。confirmed_change 列を見てみると、データのパターンや "値の頻度" から、データの分布などの直感的なデータの情報を得ることが出来ます。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3520029/3b0faf0b-030b-d98e-919e-af8969d5497e.png)


今回のデータ自体は単なるデモデータになりますが、実際のビジネスで使用されているデータを見える化していけばデータから多くの情報を得ることが出来るのではないかと思います。ぜひ、多くのリソースをスキャンしていただき、IDMC/CDGC を使ってデータを活用頂ければと思います。

# 参考
今回は Microsoft 社の Azure Synapse Analytics のスキャンをベースに説明をしてきましたが、他にも メジャーなリソースについていくつか Qiita で手順をまとめています、是非、それらについても確認していただければと思います。

Microsoft 関連
[[CDGC] Microsoft SQL Server のスキャン](https://qiita.com/tmasudaf23/items/45add1b3b298e2aae8ea)
[[CDGC] Azure Synapse Analytics のスキャン](https://qiita.com/tmasudaf23/items/9d5bcf8b66919dc1e0cb)
[[CDGC] ADLS gen2 のスキャン](https://qiita.com/tmasudaf23/items/1548c53f3634e1ee2bca)
[[CDGC] Azure Data Factory のスキャン](https://qiita.com/tmasudaf23/items/5ac5af194005c38f2dbd)
[[CDGC] JDBC のスキャン(JDBC scanner で Azure Cosmos DB からメタデータを取得する)](https://qiita.com/tmasudaf23/items/5f5dd69f37a6c0451d0b)

その他、システムリソースのスキャン関連
[[CDGC] Google BigQueryのスキャン](https://qiita.com/masatoshimada-max/items/2e50f1a1fd1d8602e147)
[[CDGC] Snowflakeのスキャン](https://qiita.com/masatoshimada-max/items/f8cf82e37c9bdb30481a)
[[CDGC] Oracle のスキャン](https://qiita.com/AkiYamano/items/ac59fbe859cab37ebb99)
[[CDGC] Oracle PL/SQL スクリプトのスキャン](https://qiita.com/AkiYamano/items/ac876eaf35b0f1c0fbf3)
[[CDGC] Amazon S3のスキャン](https://qiita.com/nickqinsc/items/887f685e40bbafdefc96)
[[CDGC] Amazon Redshiftのスキャン](https://qiita.com/masatoshimada-max/items/f102c182a44c4d82c2a0)
[[CDGC] Talend のスキャン](https://qiita.com/yasuyuki90/items/69d3baa261eef6d2e8a6)
[[CDGC] File System のスキャン](https://qiita.com/masatoshimada-max/items/3986bd5698e107d83446)
[[CDGC] MySQL のスキャン](https://qiita.com/masatoshimada-max/items/d10303543f7a08c0b8ed)
[[CDGC] Apache Hive のスキャン](https://qiita.com/tmasudaf23/items/84d16e28a69cac52ccde)