[CDGC] Snowflakeのスキャン

# はじめに
[インフォマティカ](https://www.informatica.com/jp/)が提供する、 [CDGC](https://www.informatica.com/jp/products/data-governance/cloud-data-governance-and-catalog.html)(データガバナンス＆カタログ)を使って、Snowflakeからメタデータを取得(スキャン)するためのガイドです。2023/07時点の情報を元にしています。
![2023-07-21_18h24_15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/244f50b7-e38f-d779-c2c3-2399e753984a.png)
![2023-07-21_18h24_49 - コピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/9b7eaaf3-652a-842a-008e-64568621a3d9.png)


<!-- 各チャプター -->
# 事前準備
CDGCがセットアップ済みであり、メタデータコマンドセンターのメニューにアクセスできるライセンス、およびユーザロール、ユーザである事を確認して下さい。[こちらのナレッジベース](https://knowledge.informatica.com/s/article/FAQ-CDGC-apps-licenses-roles?language=ja)より手順をご確認下さい。

# 前提
1. SnowflakeのPermission

    メタデータを抽出するには、以下の権限を割り当ててあるユーザーを利用する必要があります。必要に応じてSnowflake管理者の方とご相談下さい。

    | Permission | Privilege  name |
    |:-:|:-:|
    |Database   |Usage   |
    |Schema	   |Usage   |
    |Table   |All   |
    |Sequence   | All  |
    |Stored Procedure   |All  |

    これらの権限により、以下の操作を行うことができます
    select on information_schema.EXTERNAL_TABLES
    select on information_schema.FUNCTIONS
    select on information_schema.PIPES
    select on information_schema.PROCEDURES
    select on information_schema.SCHEMATA
    select on information_schema.SEQUENCES
    select on information_schema.STAGES
    select on SNOWFLAKE.ACCOUNT_USAGE.TAGS
    select on SNOWFLAKE.ACCOUNT_USAGE.TAG_REFERENCES
    Show objects
    Show columns
    Show primary keys
    Show imported keys
    Show streams
    Show materialized views
    Show tasks
    Show databases
    
    データ・プロファイルの実行権限
        データ・プロファイルを実行するために追加の権限は必要ありません。メタデータの抽出に使用される権限でデータ プロファイルを実行できます。

# スキャン対象
Snowflakeから下記のメタデータを取得可能です。
- データベース
- スキーマ
- テーブル
- ビュー
- マテリアライズド・ビュー
- 関数
- ストアドプロシージャ
- パイプ
- ステージ
- カラム

# 接続設定
CDGCのスキャンに限らず、IDMCプラットフォームとしては、各種DBやファイルシステムへアクセスするために接続(Connection)を作成する必要があります。[ナレッジベース(KB)](https://knowledge.informatica.com/s/article/How-to-Create-a-connection-for-a-catalog-source-in-CDGC?language=ja)の手順もご確認下さい

1. 管理メニュー → 接続からSnowflakeへアクセスするための情報を入力
![2023-07-21_18h03_49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/284b3299-7794-bb60-b95f-12e3b14234f5.png)

:::note info
- タイプは「Snowflake Data Cloud」を選択して下さい。
- Authentication認証タイプ毎の設定については、[マニュアルの「Connection properties」](https://docs.informatica.com/data-governance-and-quality-cloud/metadata-command-center/current-version/catalog-source-configuration/snowflake.html)をご確認下さい。
:::

:::note warn
JDBCパラメータは、特にプロファイリング等が失敗する場合は設定を試してみて下さい。
 [ナレッジベース(KB) ERROR: "Please provide correct path for the Object. [Data Asset Name] was not found" when snowflake profiling fails in CDGC](https://knowledge.informatica.com/s/article/000204935?language=en_US)
:::

# スキャン設定
詳細のステップは、[マニュアル](https://docs.informatica.com/data-governance-and-quality-cloud/metadata-command-center/current-version/catalog-source-configuration/snowflake.html)、[How to Library](https://knowledge.informatica.com/s/article/How-To-Configure-a-Snowflake-Resource-In-CDGC?language=en_US)も合わせて参照して下さい。

1. メニューから「メタデータコマンドセンター」を選択
![chrome_1tgmiMYCUF.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/e0573c01-973c-faa1-1344-23822d62f7d1.png)

1. メタデータコマンドセンターから「新規」を選択
![chrome_w8lflLEgjP.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/bd12959e-af63-9aa5-7051-bb2680b6dd49.png)


1. カタログソースから「Snowflake」を選択
![2023-07-21_18h06_06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/f5e6ba83-4ca1-6806-e99c-72887e190d69.png)


1. Snowflakeへの接続情報を選択し「次へ」をクリック
必要に応じて、「テスト接続」にて、正常に接続できることを確認して下さい
![2023-07-21_18h06_59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/d51ee649-b310-9fc5-2982-939d790ede72.png)

1. ランタイム接続から利用するSecure Agentを選択、必要に応じてフィルタによる絞り込みを実施し、「保存」をクリック
![2023-07-21_18h08_06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/64bd6b72-85ee-5c9a-7cf7-69e6a9109329.png)


:::note info
- フィルタを適用して、Snowflakeのデータベース、スキーマからメタデータを包含または除外できます。絶対パスはピリオドを区切り文字として指定して下さい。なお、テーブルの指定はできません。詳細の設定はマニュアルを参照して下さい。
- ストアドプロシージャ等のプログラムを取得したい場合は、「プログラム可能オブジェクトの処理」を「はい」にします
:::


1.プロファイリングの設定
データプロファイリングを設定して、Snowflake ソースシステムから抽出されたメタデータに対してプロファイルを実行します。以下の Snowflake オブジェクトに対してデータプロファイルを実行できます：
- テーブル
- ビュー

「データプロファイリングとデータ品質」タブをクリックし、データプロファイリングの右側の矢印をクリック
![2023-07-21_18h08_20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/b38d462f-92b3-5873-5654-7415c5050ace.png)

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




1.「関連付け」「スケジュール」は必要に応じて設定しますが、今回はすぐにスキャンを実施したいため、「実行」をクリック
![2023-07-24_17h24_47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/32d55a71-6dee-c275-304a-4d0a0b0213d4.png)



1. 実行のスコープは、そのまま変更せずに「実行」をクリック
![2023-07-21_18h09_30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/c163e7cb-cd8f-6230-4369-197c99155328.png)

1. ジョブ監視画面に自動で遷移するので、しばらく待ってステータスが完了した事を確認
![2023-07-21_18h23_34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/dc966d5b-648e-0b89-811b-21188f923509.png)


# 結果の確認
- 取得したアセットの一覧を表示
CDGCの画面を呼出し、該当のカタログリソースが閲覧できることを確認する
![2023-07-21_18h24_15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/61a3ef2f-5853-e046-cc05-0e695dd3c99c.png)
- ビューのリネージュの確認
![2023-07-21_18h24_49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/840bc5fc-36f0-3b4d-1d4d-2b7ff37da407.png)



# Tips
- プロファイリングに失敗する場合、[ナレッジベース(KB)](https://knowledge.informatica.com/s/global-search/%20#t=KB&sort=relevancy&f:@athenaproduct=[Cloud%20Data%20Governance%20and%20Catalog])を参照し、エラーメッセージから検索を実施して下さい。
- SQLファイル等スクリプトの取り込み、Write backについては別途、記事にする予定です

# 参考文献
- [**マニュアル** *ログインが必要](https://docs.informatica.com/data-governance-and-quality-cloud/metadata-command-center/current-version/catalog-source-configuration/snowflake.html)
- [**ナレッジベース(KB) - How to Library(H2L)** *リンクのPDFを参照して下さい](https://knowledge.informatica.com/s/article/How-To-Configure-a-Snowflake-Resource-In-CDGC?language=en_US)
- [**Youtube** *日本字幕設定が可能です](https://www.youtube.com/watch?v=-7e7QOEgEDo)