[CDI] Excelの非構造・非定型データを、AI搭載ノーコード機能で自動抽出してみる

# はじめに
[インフォマティカ](https://www.informatica.com/jp/)が提供する、 [CDI](https://www.informatica.com/jp/products/cloud-data-integration.html)(Cloud Data Integration)の『インテリジェント構造モデル』を使って、Excelからデータを取得するためのガイドです。
※2024/4 時点の情報を元にしています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/5a7972ff-778d-d930-d6fc-703616c3c5f3.png)


# Excelはデータの宝庫。でも、活用できてる？
Excelは自由にフォーマットを決めてデータを管理できる反面、その自由度が故にデータが非構造・非定型になってしまい、属人的なフォーマットに依存し、再利用が困難になる場面がよくあります。

データ管理に使われる事もよくあるため、重要データの宝庫でもありますが、それらをいかに効率的に利用するか、他の格納されているデータとどうやって合わせて活用するかが課題となっています。

# インテリジェント構造モデルの利点
CDIでは、インテリジェント構造モデル(以下、ISD)と呼ばれる、インフォマティカのAIである「CLAIRE」を使った構造解析のモデルを利用することで、複雑なExcelフォーマットから自動的に構造データを抽出することができます。

ISD は、遺伝的アルゴリズムを使用して、ファイル内のパターンの認識を自動化します。さらに固有表現認識 (NER)や自然言語理解（NLU）のメカニズムも取り入れて、精度向上をしています。

なお解析対象はExcelだけでなく、JSON、XML、ORC、Avro、Parquet、PDFフォームフィールド内のデータ、Microsoft Wordテーブル内のデータ、XSD、COBOLコピーブックなどの構造解析にも対応しています。

# データ抽出のステップ
通常のETLのマッピングと比べると、ソース(抽出元データ)の設定等が違うため、注意が必要です。
以下に、概念図とその４つのステップを作成しましたので、ご確認ください。

- ①インテリジェント構造モデルの作成
- ②Excelの配置されたパスのフラットファイルを作成し、マッピングにてソースとして読み込み
- ③構造パーサーによるExcelの構造解析
- ④結果の出力
<BR>

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/ced2d74e-a330-7f75-e20b-88c68a6d65b3.png)



<BR>
また、今回に利用するExcelは、下記のような単純なデータ構造となっています。

:::note info
なお、もっと複雑で複数テーブルが定義されているようなExcelの場合でも、対応が可能となっております。
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/9674a7d2-913f-14d7-407b-1093519426d2.png)


### 1\. インテリジェント構造モデルの作成
1-1 サービスメニューから、『データ統合』を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/93dda650-aa25-ff50-5f7f-22ce2e6a3f9b.png)

1-2 データ統合において、『新規』から『コンポーネント』を選択し、『インテリジェント構造モデル』を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/68a2f4a4-bc81-465e-9de0-630b28601637.png)

1-3 インテリジェント構造モデル 作成画面において、①任意の名称とプロジェクト配置を選択し、②構造モデルを読み取るためのサンプルとなるExcelファイルの選択、③『構造の検出』をクリック。そうすると④のように、構造モデルが自動的に選択されるので、保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/8270c9de-a0da-95ee-c802-74048b2efa2e.png)

### 2\. Excelの配置されたパスのフラットファイルを作成し、マッピングにてソースとして読み込み
2-1 任意のストレージ等に、実際のExcelが配置されているパスを記載したフラットファイルを配置します。"FILEPATH"と言うヘッダーに対して、レコードに、実際のExcelが配置されているパスを記載します。
下記の例は同じSecure AgentのWindows上にExcelが配置されている場合を想定していますが、ファイルサーバー、AWS S3等のオブジェクトストレージの場合は、それらのパスを記載してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/1c3fb1d6-46e4-cdb6-b625-cec0fd5de112.png)

2-2 マッピングを作成するために、上で配置したパスのフラットファイルへアクセスするための接続を、『管理者』メニュー - 『接続』から新規作成し、保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/5f507f2b-ab0e-790d-41b1-934128426c4e.png)


2-3 『データ統合』メニューの『新規』より、『マッピング』-『マッピング』を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/02403d5d-9681-1b63-74a4-73231d0d25d1.png)
<BR>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/480bf7e3-bf04-f292-750c-9cd98782ebaf.png)





2-4 新しいマッピングにて、さらに『マッピング』を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/23b928bb-6286-6995-e0a6-842f5836addb.png)

2-5 マッピングに任意の名前と、配置するプロジェクトを選択 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/bf4f68ee-c73d-6295-441c-36daa975d195.png)


2-6 『ソース』より、先ほど作成した接続を選択し、配置したフラットファイルを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/b25101bd-c601-b3aa-51a8-243123d8dd38.png)


### 3\. 構造パーサーによるExcelの構造解析

3-1 左側の変換部品一覧から、『構造パーサー』を選択し、ドラッグ・アンド・ドロップ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/5abf1175-ecf2-b9ac-4710-4ca4571204ef.png)



3-2 『構造パーサー』を選択し、プロパティの『構造パーサー』から、『選択』をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/d7bc6c58-38c5-dd97-de09-c685d40e0184.png)

3-3 一覧から先程に作成したインテリジェント構造モデルを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/6fc6b30e-2870-2942-bbe4-3a03bb8d1b0d.png)

3-4 『ソース』から『構造パーサー』に連携をドラッグ・アンド・ドロップ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/6ffe25b8-e620-ac45-d1e9-3cab3ac15a76.png)

3-5 『構造パーサー』の『フィールドマッピング』において、受信フィールド"FILEPATH"から、構造パーサー入力フィールド"FilePath"にドラッグ・アンド・ドロップ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/473a95ef-25b9-5f0c-71fa-3084bfa48390.png)

3-6 出力フィールドから、element内に、Excelからの項目が表示されているのを確認できます。 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/96dc9e83-b20e-06c9-6279-7b2c67d15212.png)



### 4\. 結果の出力
4-1 『ターゲット』に対して、構造パーサーから矢印をドラッグ・アンド・ドロップ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/d0215541-c3fa-fa38-0fac-9b21f0dbb4d2.png)

4-2 『出力グループの選択』の画面が表示されるので、『element』を選択します

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/1f4f0240-6023-df68-00b4-f0c03019ae24.png)

4-3 その後、『ターゲット』- 『受信フィールド』から、elementとして取得できたExcelのフィールドが反映されているのを確認

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/48dbaee2-19b7-dce9-c174-8b6e2d43645a.png)


4-4 任意のターゲットに出力を実施します。今回の場合は、新規のCSVファイルとして出力していますが、DB・各種ファイルフォーマット等を自由に選んでいただけます。そして、マッピングを実行します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/09e09d76-ca59-4887-ded2-04ff1a23e91a.png)

4-5 出力結果の確認
CSVファイルとして出力した結果の確認。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/110338/e4465b7f-82de-646a-adcc-24051ecfb86c.png)

# まとめ
今回は、『インテリジェント構造モデル』を使って、Excelからデータを取得するためのアーキテクチャ概念と、その実際のステップを見て頂きました。今回はかなりベーシックな内容でしたが、応用することで皆様が活用されているExcelをさらに効率的にかつ広範囲のメンバーで利活用することができます。ぜひ試してみてください。

手順については、下記のYoutube動画も参考になるので、日本語の翻訳字幕を活用して、ステップの流れを確認頂くとスムーズに実践できるかと思います。

https://www.youtube.com/watch?v=SaTDw8_Bjd8



# 参考資料
マニュアル : インテリジェント構造モデル

https://docs.informatica.com/ja_jp/integration-cloud/data-integration/current-version/_components_cloud-data-integration_current-version_ditamap/GUID-C05E35F3-AE2C-47C1-97AF-82DDA7178F07.html

<BR>

マニュアル : インテリジェント構造モデルの改良

https://docs.informatica.com/ja_jp/integration-cloud/data-integration/current-version/_components_cloud-data-integration_current-version_ditamap/GUID-B9599BC1-F86E-4475-83E8-562DCFED2F03.html

 <BR>

 マニュアル : 構造パーサートランスフォーメーション

 https://docs.informatica.com/ja_jp/integration-cloud/data-integration/current-version/_transformations_cloud-data-integration_current-version_ditamap/GUID-11C1FF9E-E20C-453E-B72D-CAC6475A507E.html

ナレッジベース : HOW TO: Create an Excel Source Using Intelligent Structure Discovery in IICS

https://knowledge.informatica.com/s/article/579256?language=en_US

<BR>

::: note info
※動画は、Youtubeの字幕設定で日本語等に翻訳できますので、その機能を活用ください
:::

動画 : How to Handle Intelligent Structure Model Excel Columns and Create Excel Source 
 ※ExcelからIntelligent Structure Discoveryを使ったデータ取得

https://www.youtube.com/watch?v=SaTDw8_Bjd8

<BR>
 
動画 : Intelligent Structure Discovery in CDI - Implementation and Use Cases 
※Excel等の非構造データを読み取るIntelligent Structure Discovery解説 Long版

https://www.youtube.com/watch?v=TGBr03EdmH4

<BR>
 
動画 : Introduction to Intelligent Structure Models (ISM) ※Excel等の非構造データを読み取るIntelligent Structure Discovery解説 Short版

https://www.youtube.com/watch?v=pRJ-HE6UOYY

<BR>
 
ブログ : 参考 データカタログでExcelのメタデータを可視化した場合の見え方

https://qiita.com/masatoshimada-max/items/082489f8d9948f5de67b