![見出し画像](https://assets.st-note.com/production/uploads/images/122834320/rectangle_large_type_2_d613ec9ea383cb88f93a577edaa8a2f1.png?width=1200)
【データマッピング】Talendによるデータ処理
はじめに
こんにちは、前回はデータマッピングツールであるtalnedを使ってデータを変換する練習をしました。 私はバックエンドエンジニアですが、できれば将来的にはデータを扱うデータエンジニアとして徐々にキャリアをアップグレードしたいと思っていますが、ETL(Extract, Transform, Load)ツールとして有名なtalendに触れる機会があり、とても嬉しく思っています。
今回はtalendを使ってデータを読んで、書いて、繰り返す実習をしてみます。
データ読み込み
![](https://assets.st-note.com/img/1701063257855-EhyVTnAHiO.png)
メタデータ項目で「File delimited」の「Create file delimited」をクリックします。
![](https://assets.st-note.com/img/1701063260917-vCPTqrJEKC.png)
ファイル名を入力します。
![](https://assets.st-note.com/img/1701063263522-tsUJKVmZ5U.png?width=1200)
Browseボタンを押してファイルを読み込みます。
![](https://assets.st-note.com/img/1701063265893-soeuUzo5VH.png)
ファイルの値がカンマで区切られているのが見えます。
![](https://assets.st-note.com/img/1701063268195-qOwTwqNO87.png)
フィールドセパレータを「カンマ」に設定すると、プレビュー欄にデータが適切に区切られます。
![](https://assets.st-note.com/img/1701063271205-W972DTOE7C.png?width=1200)
各フィールドのデータパターンとサイズを設定します。
![](https://assets.st-note.com/img/1701063290013-onk3XRZ29t.png?width=1200)
販売csvファイルを読み込むことをログコンポーネントに接続して実行してみると、値が読み込まれたことが確認できます。
データ書き込み
![](https://assets.st-note.com/img/1701068073354-g4pDDDra5o.png)
![](https://assets.st-note.com/img/1701068076300-oaQDpT9wuB.png)
今回はデータを書き込む実習をしてみましょう。まず、ジェネレータとExcel出力コンポーネントを作成します。 その後、ジェネレータコンポーネントのスキーマにid, firstName, lastName, birthDate, countryフィールドを作成します。タイプと、関数も下記のように設定します。
![](https://assets.st-note.com/img/1701068079880-pULHvbyYOz.png?width=1200)
この時、「...」と表示された部分を押すと、値をカスタマイズすることができます。ここでは国名をカスタマイズしました。
![](https://assets.st-note.com/img/1701068082044-883PVKJ5tZ.png?width=1200)
拡張子をxlsxに変えて、'Include header'、'Define all columns auto size'ボタンをチェックします。参考までに'Write excel2007 file format(xlsx)'もチェックします。
![](https://assets.st-note.com/img/1701068084871-fE5g7lRVR4.png?width=1200)
![](https://assets.st-note.com/img/1701068122921-aWur3ITAC4.png)
実行させてみると、各フィールドの値が生成されたエクセルファイルが作成されたことが確認できます。
ファイルIterate
![](https://assets.st-note.com/img/1701073207437-577uULeHOT.png?width=1200)
今回は複数のファイルリストを繰り返し読み込んでログに表示してみます。まず、FileList、FixedFlowInput、LogRowコンポーネントを生成します。 そしてFileListコンポーネントを右クリックしてIterateをクリックしてFixedFlowInputコンポーネントに接続します。
![](https://assets.st-note.com/img/1701073210675-VWSeOd4BcH.png?width=1200)
今回はFixedFlowInputコンポーネントでスキーマを修正します。
![](https://assets.st-note.com/img/1701073224686-u0ps8raagt.png)
カラムにファイル名フィールドを作成します。
![](https://assets.st-note.com/img/1701073232583-AsF2xTQGwm.png?width=1200)
フィールドが作成されたら、値をどのように取得するか関数を設定します。ここでは '((String)globalMap.get("tFileList_1_CURRENT_FILE"))' に設定しました。
![](https://assets.st-note.com/img/1701073237000-PI4SSQxg0M.png?width=1200)
最後にログコンポーネントで実行してみると、csvファイルがリストに入ったことが確認できます。
最後に
今までtalendを使ってデータの読み書き、ファイルリストの入力まで実習してみました。 最も基本的な操作なので、十分に理解してデータマッピング全般に応用できるようにしなければなりません。
エンジニアファーストの会社 株式会社CRE-CO
ソンさん
【参考】
[Udemy] Data Integration & ETL with Talend Open Studio Zero to Hero