本記事では Informatica Intelligent Cloud Services の データ統合/Cloud Data Integration で利用できる「インテリジェント構造モデル」についてご紹介します。
#はじめに
システム間のデータ連携では主にCSVファイルやデータベースのテーブル、Salesforceなどのアプリケーションからデータを抽出し処理します。これらは項目(カラム)の名前やデータ型などの構造を簡単に取得できるので、データ連携処理の開発も容易です。
それでは、ログファイルやExcelファイル、JSONやParquetなどの非構造化データ/半構造化データをからデータを抽出したい場合はどうでしょうか。複雑なデータの構造を一つ一つ確認して手動で定義するためデータ連携処理の開発に時間がかかるかもしれません。
Cloud Data Integration (CDI) では「インテリジェント構造モデル」機能を利用して簡単にデータの構造を定義できます。
#インテリジェント構造モデルとは
「インテリジェント構造モデル」はデータファイルや定義ファイルを解析し、パターン、繰り返し、関係性、データの種類などの構造を自動解析してモデル化することにより、データ連携処理で簡単にデータを抽出できるようにします。
次の非構造化データ、半構造化データ、および構造化データを解析できます。
- 区切りファイル(CSVファイルなど)
- 機械生成されたファイル(Webログやクリックストリームなど)
- JSONファイル
- XMLファイル
- ORCファイル
- Avroファイル
- Parquetファイル
- Microsoft Excelファイル
- PDFフォームフィールド内のデータ
- Microsoft Wordテーブル内のデータ
- XSDファイル
- COBOLコピーブック
XSDファイルとCOBOLコピーブックはTechnical Previewです。開発環境における機能評価の目的にのみご利用ください。
#インテリジェント構造モデルの作成
本記事ではCOBOLワークブックをもとにマルチレイアウトのフラットファイルからデータを抽出してみます。
なお、前述したようにCOBOLワークブックはTechnical Previewとなりますのでご注意ください。
##COBOLワークブック
インテリジェント構造モデルで解析するCOBOLコピーブックです。
000100******************************************************************
000200******************************************************************
000300 03 COLUMN01 PIC X(05).
000400 03 COLUMN02 PIC X(05).
000500 03 SAMPLE-PACK PIC S9(05) COMP-3.
000600 03 SAMPLE-PACK2 PIC S9(03) COMP-3.
000700 03 SAMPLE-PACK3 PIC S9(07) COMP-3.
000800 03 FLAGS PIC X(01) OCCURS 6.
000900 03 WORK-DATE PIC X(08).
001000 03 WORK-DATE-R REDEFINES WORK-DATE.
001100 05 WORK-YEAR PIC 9(04).
001200 05 WORK-MONTH PIC 9(02).
001300 05 WORK-DAY PIC 9(02).
##インテリジェント構造モデルの作成
CDI の[新規]をクリックして、[コンポーネント]-[インテリジェント構造モデル]を新規作成します。
[スキーマ/サンプルファイル]のファイルアイコンをクリックし、COBOLコピーブックを選択します。
ファイルが読み込まれたら[構造の検出]をクリックし、解析を開始します。
コピーブックに基づき構造が解析されます。解析結果はツリー形式で表示されます。各ノードの名前を変更したり構造から除外するなどの編集もできます。
正しくデータが取得できることをテストできます。[テスト]タブを選択します。
[テスト出力フォーマット]で出力するファイルのフォーマットを選択します。[選択して変換]をクリックし、データが含まれるフラットファイルを選択します。
インテリジェント構造モデルに基づき解析されたデータがファイルとして出力されます。
リレーショナル
![08_ISD_CSV.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253766/1f7dce26-62ca-644d-e18c-05661fb76c99.png)JSON
![09_ISD_JSON.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253766/3f25d388-d989-e5da-8926-f3a3f551453a.png)XML
![10_ISD_XML.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253766/89bc4d15-8ddb-3e5d-af7a-5908ef97b0de.png)JSON LINES
![11_ISD_JSONLINES.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253766/b281717a-361d-8895-4b69-aa0631faa674.png)##マッピングへの組み込み
インテリジェント構造モデルはマッピングの [構造パーサー] トランスフォーメーションで利用することができます。
#まとめ
インテリジェント構造モデルを利用することにより、非構造化データや半構造化データなどを簡単に処理することできます。
本記事ではCOBOLコピーブックを例にしましたが、他の形式のファイルもぜひ試してみてください。