【CLAIRE GPT】InformaticaのGenAI（生成AI）でデータカタログを探索してみた

# はじめに
はじめまして。[NTTデータ ソリューション事業本部 デジタルサクセスソリューション事業部](https://enterprise-aiiot.nttdata.com/) の @nttd-sasaki です。

[Informatica（インフォマティカ）](https://www.informatica.com/jp/) （※1）のクラウドデータマネジメントプラットフォームとして、「[Intelligent Data Management Cloud](https://www.informatica.com/jp/platform.html)」（※2。以下IDMCと記載）というものがあります。

**今回はそのIDMCの、データに関する疑問を解決してくれるGenAI（生成AI）を使った対話側インターフェース「[CLAIRE GPT](https://docs.informatica.com/data-governance-and-quality-cloud/claire-gpt/current-version/getting-started-with-claire-gpt/preface.html)」を使って、データカタログを探索してみた**のでご報告します。

<details><summary>※1. Informatica（インフォマティカ）</summary>
Informaticaは1993年に米国カリフォルニア州で設立され、2004年に日本法人を設立したデータマネジメント市場のパイオニア。Fortune100のうち86社を含む、100ヶ国以上の5000を超える企業がInformaticaのソリューションを採用しており、同社のクラウドは月間86兆件ものトランザクションを処理している。
</details>


<details><summary>※2. Intelligent Data Management Cloud</summary>
略称はIDMC。旧称はIICS。クラウドデータマネジメントプラットフォーム。以下IDMCと記載する。
</details>


# データカタログとは
まず、データカタログについて説明します。
昨今、ビジネス課題の解決・ビジネスモデルの変革を目的としてデータを利活用するニーズが高まっています。ただ、データの利活用がうまくいっていないケースがあり、下記の課題が見受けられます。
* 分析に必要なデータがどこに格納されているかが分からず、それを調べるのに時間を要してデータ分析に時間を割けない。
* 分析に使いたいデータの源泉がどのシステムかが分からず、そのデータが信頼できるかどうかの判断がつかない。
* 分析に使いたいデータの所有者、品質、使用状況などが分からない。

これらの課題を解決するために、メタデータを管理するデータカタログサービスを活用する企業が増えています。

Informaticaが「IDMC」上で提供するデータカタログソリューションが、**データガバナンスとデータカタログを統合した「Cloud Data Governance and Catalog」**（以下CDGCと記載）です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540642/74b1ab26-43a7-30e3-1bd5-db3d868d2ac4.png)

CLAIRE GPTの説明に入る前にCDGCの説明を簡単にさせていただきます。
「CDGC」は、2種類のメタデータを管理します。
はじめに、「CDGC」は、データの源泉システムをスキャンし、**テクニカルメタデータ**を自動的に抽出・収集します。テクニカルメタデータの一例を以下の表に記します。
|  テクニカルメタデータ  | 説明 |
| ---- | ---- |
|  データベース定義  |  データベース、スキーマ、テーブル、カラム等の定義。データベースの種類によって階層や構造は異なる。  |
|  ファイル定義  |  ディレクトリ、ファイル名、項目名等の定義。ファイルオブジェクトの種類によって階層や構造は異なる。  |
|  リレーション  |  アセット間の依存関係またはリンクを示し、可視化。  |
|  データリネージュ  |  データの流通経路を、ETL・BI・スクリプト等から取得し、アセットと紐づけ、可視化することで、インパクト分析やデータセットの確認に利用。  |
|  データ品質  |  品質ルールに則り、データ品質を数値化して監視・経緯の可視化  |

次に、「CDGC」の管理側ユーザー（データオーナーやデータスチュワード）は、これまでExcelファイルなどとして定義・管理していたビジネス用語などのビジネスデータを、 **ビジネスメタデータ**として「CDGC」に登録できます。ビジネスメタデータの一例を以下の表に記します。
|  ビジネスメタデータ  | 説明 |
| ---- | ---- |
|  ドメイン  |  おおまかなテーマでまとめられたビジネス用語のカテゴリ。ドメインにはサブドメイン、またはビジネス用語を含めることができます。例) ファイナンス  |
|  サブドメイン  |  ドメイン内で区分として利用できるグループ化可能なアセット。階層化することも可能。例) 「ファイナンス」 ドメイン内における 「リテールファイナンス」、「コーポレートファイナンス」 など  |
|  ビジネス用語  |  ビジネス用語として意味やビジネス・コンテキストの定義を行う。例) 「需要予測」 という用語を定義し、その内容を説明。  |
|  データセット  |  データソースを表す論理的なアセットであり、通常、テクニカルアセットにおけるフラットファイル、テーブルカラム、JSON ファイルなどに相当。例）「顧客名」  |

こうして「CDGC」に集積されたメタデータを、管理側ユーザーの操作で拡充していきます。
CDGCに登録できるメタデータの1つであるデータリネージュに着目すると下記の画像ように、特定のデータがどの源泉（データソース、システム）からどのシステムへ連携されているのかがわかります。このようなデータリネージュを参照することで、データの中身が信頼できる内容なのかを判断する材料になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540642/69d53983-5d3f-b1b0-0a90-1b56001d5b8a.png)

CDGCに関する詳細につきましては、[InformaticaのデータカタログサービスCDGCにてAIを使ってデータ品質を可視化してみた（前編）](https://qiita.com/nttd-nagano/items/0706f77a992f0f931764)に記載があります。当記事では、CDGCでデータソースやデータ統合ツールからメタデータ（テクニカルアセット）を抽出・登録した前提でCLAIRE GPTを使用するため、必要に応じてご参照ください。

# データカタログの課題と対話型インターフェース「CLAIRE GPT」
CDGCの一般的な使い方として、CDGC上で様々なデータソース、システムから抽出・登録したアセットをデータ利用者（データサイエンティストやデータアナリスト）が閲覧することで、取り扱いたいデータに関する情報を把握したり、分析に用いるデータを取捨選択することになります。ただ、この作業を実施するなかで下記のような障壁が出てくることが多々あります。
* 調べたいアセットを検索するのが煩雑で時間と手間がかかる。
* CDGCの操作方法が分からず思った通りにアセットが見つからない。

**このようなデータを取り扱ううえでの障壁を無くし、誰でも簡単にデータに関する情報を手に入れられるソリューションが「CLAIRE GPT」です。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540642/068066d5-72d6-ba00-587c-c7fb5ea76d65.png)

**CLAIRE GPTはGenAI（生成AI）を利用した対話型のインターフェースで構成されていて、データ利用者がデータに関する疑問を文字入力することでそれに対する回答が返ってきます。 CDGCの操作方法を知らない、もしくはCDGCでのデータ探索が煩雑だと感じる方でも簡単にメタデータを探索できるようになります。**



# 「CLAIRE GPT」を使ってCDGCに登録されたアセットやデータを探索する
それでは、CLAIRE GPTを使ってCDGCにあるアセットやデータの中身を探索していきましょう。CLAIRE GPTを使用する3つのケースをご紹介します（現在CLAIRE GPTは英語での指示にのみ対応しています）。

#### ケース1：特定のテーブルを見つけ、そのデータの中身を閲覧する
はじめに、Snowflakeのテーブルを探索するために、`Show all tables in the catalog source @Snowflake`と入力します。すると下記の画像の通り、Snowflakeのテーブルが表示されました。（データソース名や登録済みのテーブルやカラムなどを入力する際はその前に`@`を付け足すことで指定でき、大文字で表示される）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540642/3e5cac56-87b2-cc10-0987-9a84cf25e005.png)

次に、「MANY_ORDERS」というテーブルについて詳しく知るために、`Show overview of @MANY_ORDERS`と入力します。するとテーブルに関する詳細情報（下表）を下記の画像の通り表示させることができました。
|項目|説明|
|---|---|
|Description|アセットの説明欄に記載された内容|
|Data Characteristics|データ特性。リソースタイプ、カラム数、データプロファイリング済みか否かなど|
|Key Columns|キーカラム|
|Data Quality|データ品質スコア|

![lpd7mzo9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540642/5126ed14-0bc0-ecd0-9e9a-ebb08c465cd4.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540642/8c065098-d5c7-e3ad-af39-4d452ca7e0a3.png)
また、画像下部にある青文字の「MANY_ORDERS」を押下することで、CDGCの「MANY_ORDERS」に関する詳細画面に遷移できます。

次に、`Show data sample of @MANY_ORDERS`と入力することで、テーブル「MANY_ORDERS」のプレビューが表示されました。このように、わざわざSnowflakeのGUIを使わずとも、CDGCに登録されているサンプルデータを閲覧できます。
また、画像下部の「Show Code」と「Download」を押下することで、それぞれテーブルのプレビューを表示するSQLクエリとテーブルのCSVファイルを取得できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540642/8490b738-5a33-e1c5-6d99-59f18f74b4ca.png)

#### ケース2：テーブルのデータリネージュを閲覧する
ケース2では、データがどのように生成されたのかを知るために、CLAIRE GPTを使ってデータリネージュを表示します。下の画像のように`Show data lineage of @MANY_ORDERS`と入力することで、あらかじめCDGCにて登録されているデータリネージュを閲覧できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540642/8294d721-049a-bdd0-da41-c9cbd5ba4e3c.png)
この画像から、テーブル「MANY_ORDERS」はテーブル「ORDERS」にストアドプロシージャ「PROCEDURE_SQL()」を適用した結果生成されたテーブルであることが見てとれました。

#### ケース3：データ統合サービスで実行できるデータパイプラインを作成する
下記の画像の通り、`Create a mapping for @MANY_ORDERS`と入力することで、IDMCのデータ統合サービスで実行できるマッピングを作成できました。画像下部の「Open in Data Integration」を押下することで、IDMCの「データ統合」ページに遷移でき、マッピングを変更・実行することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3540642/2150c30e-8f7e-56d1-cb98-fca9cf19f27f.png)

# おわりに

以上、「【CLAIRE GPT】InformaticaのGenAI（生成AI）でデータカタログを探索してみた」でした。
> 下記のような障壁が出てくることが多々あります。
> * 調べたいアセットを検索するのが煩雑で時間と手間がかかる。
> * CDGCの操作方法が分からず思った通りにアセットが見つからない。

前述のデータカタログを活用するうえでの障壁が解消していく一端が垣間見えたかと思います。「CLAIRE GPT」はまだまだ進化途中ということで、今後の進化にも期待しています。

なお、本記事はInformatica社のGenAI（生成AI）に関する記事ですが、NTTデータでも全社として、今後さらなる需要増が見込まれるGenAI（生成AI）技術分野において、お客さまビジネス革新の支援と社内での活用を積極的に進めています。
詳しくは下記ページをご覧ください。
https://www.nttdata.com/jp/ja/services/generative-ai/

# 仲間募集

NTTデータ デザイン＆テクノロジーコンサルティング事業本部 では、以下の職種を募集しています。

<details><summary>1. クラウド技術を活用したデータ分析プラットフォームの開発・構築(ITアーキテクト/クラウドエンジニア)</summary>

クラウド／プラットフォーム技術の知見に基づき、DWH、BI、ETL領域におけるソリューション開発を推進します。
https://enterprise-aiiot.nttdata.com/recruitment/career_sp/cloud_engineer

</details>

<details><summary>2. データサイエンス領域（データサイエンティスト／データアナリスト）</summary>

データ活用／情報処理／AI／BI／統計学などの情報科学を活用し、よりデータサイエンスの観点から、データ分析プロジェクトのリーダーとしてお客様のDX／デジタルサクセスを推進します。
https://enterprise-aiiot.nttdata.com/recruitment/career_sp/datascientist

</details>

<details><summary>3. お客様のAI活用の成功を推進するAIサクセスマネージャー</summary>

DataRobotをはじめとしたAIソリューションやサービスを使って、
お客様のAIプロジェクトを成功させ、ビジネス価値を創出するための活動を実施し、
お客様内でのAI活用を拡大、NTTデータが提供するAIソリューションの利用継続を推進していただく人材を募集しています。
https://nttdata.jposting.net/u/job.phtml?job_code=804

</details>

<details><summary>4. DX／デジタルサクセスを推進するデータサイエンティスト《管理職/管理職候補》</summary>

データ分析プロジェクトのリーダとして、正確な課題の把握、適切な評価指標の設定、分析計画策定や適切な分析手法や技術の評価・選定といったデータ活用の具現化、高度化を行い分析結果の見える化・お客様の納得感醸成を行うことで、ビジネス成果・価値を出すアクションへとつなげることができるデータサイエンティスト人材を募集しています。

https://nttdata.jposting.net/u/job.phtml?job_code=898

</details>

## ソリューション紹介

<details><summary> Trusted Data Foundationについて </summary>

～データ資産を分析活用するための環境をオールインワンで提供するソリューション～

https://enterprise-aiiot.nttdata.com/tdf/
最新のクラウド技術を採用して弊社が独自に設計したリファレンスアーキテクチャ（Datalake+DWH+AI/BI）を顧客要件に合わせてカスタマイズして提供します。
可視化、機械学習、DeepLearningなどデータ資産を分析活用するための環境がオールインワンで用意されており、これまでとは別次元の量と質のデータを用いてアジリティ高くDX推進を実現できます。

</details>

<details><summary> TDF-AM（Trusted Data Foundation - Analytics Managed Service）について </summary>

～データ活用基盤の段階的な拡張支援（Quick Start) と保守運用のマネジメント（Analytics Managed）をご提供することでお客様のDXを成功に導く、データ活用プラットフォームサービス～

https://enterprise-aiiot.nttdata.com/service/tdf/tdf_am
TDF-AMは、データ活用をQuickに始めることができ、データ活用の成熟度に応じて段階的に環境を拡張します。プラットフォームの保守運用はNTTデータが一括で実施し、お客様は成果創出に専念することが可能です。また、日々最新のテクノロジーをキャッチアップし、常に活用しやすい環境を提供します。なお、ご要望に応じて上流のコンサルティングフェーズからAI/BIなどのデータ活用支援に至るまで、End to Endで課題解決に向けて伴走することも可能です。

</details>

<details><summary> NTTデータとInformaticaについて </summary>

データ連携や処理方式を専門領域として10年以上取り組んできたプロ集団であるNTTデータは、データマネジメント領域でグローバルでの高い評価を得ているInformatica社とパートナーシップを結び、サービス強化を推進しています。

https://enterprise-aiiot.nttdata.com/service/informatica

</details>

<details><summary> NTTデータとSnowflakeについて </summary>

NTTデータでは、Snowflake Inc.とソリューションパートナー契約を締結し、クラウド・データプラットフォーム「Snowflake」の導入・構築、および活用支援を開始しています。
NTTデータではこれまでも、独自ノウハウに基づき、ビッグデータ・AIなど領域に係る市場競争力のあるさまざまなソリューションパートナーとともにエコシステムを形成し、お客さまのビジネス変革を導いてきました。
Snowflakeは、これら先端テクノロジーとのエコシステムの形成に強みがあり、NTTデータはこれらを組み合わせることでお客さまに最適なインテグレーションをご提供いたします。

https://enterprise-aiiot.nttdata.com/service/snowflake

</details>

<details><summary> NTTデータとDatabricksについて </summary>

NTTデータは、お客様企業のデジタル変革・DXの成功に向けて、「databricks」のソリューションの提供に加え、情報活用戦略の立案から、AI技術の活用も含めたアナリティクス、分析基盤構築・運用、分析業務のアウトソースまで、ワンストップの支援を提供いたします。

 https://enterprise-aiiot.nttdata.com/service/databricks

</details>

<details><summary> NTTデータとTableauについて </summary>

ビジュアル分析プラットフォームのTableauと2014年にパートナー契約を締結し、自社の経営ダッシュボード基盤への採用や独自のコンピテンシーセンターの設置などの取り組みを進めてきました。さらに2019年度にはSalesforceとワンストップでのサービスを提供開始するなど、積極的にビジネスを展開しています。

これまでPartner of the Year, Japanを4年連続で受賞しており、2021年にはアジア太平洋地域で最もビジネスに貢献したパートナーとして表彰されました。
また、2020年度からは、Tableauを活用したデータ活用促進のコンサルティングや導入サービスの他、AI活用やデータマネジメント整備など、お客さまの企業全体のデータ活用民主化を成功させるためのノウハウ・方法論を体系化した「デジタルサクセス」プログラムを提供開始しています。

https://enterprise-aiiot.nttdata.com/service/tableau

</details>

<details><summary> NTTデータとAlteryxについて </summary>

Alteryxは、業務ユーザーからIT部門まで誰でも使えるセルフサービス分析プラットフォームです。
Alteryx導入の豊富な実績を持つNTTデータは、最高位にあたるAlteryx Premiumパートナーとしてお客さまをご支援します。

導入時のプロフェッショナル支援など独自メニューを整備し、特定の業種によらない多くのお客さまに、Alteryxを活用したサービスの強化・拡充を提供します。

https://enterprise-aiiot.nttdata.com/service/alteryx

</details>

<details><summary> NTTデータとDataRobotについて </summary>

DataRobotは、包括的なAIライフサイクルプラットフォームです。
NTTデータはDataRobot社と戦略的資本業務提携を行い、経験豊富なデータサイエンティストがAI・データ活用を起点にお客様のビジネスにおける価値創出をご支援します。

https://enterprise-aiiot.nttdata.com/service/datarobot

</details>