Talend Open Studioのインストールからジョブ作成まで

Talend Open StudioをWindowsにインストールしてジョブ作成と実行までをやりました。その手順です。


# Javaインストール

Javaをインストールします。以下のページの Java SE 8のJDKをダウンロードしてインストールします。

[Java SE Development Kit 8 - Downloads](https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html)


## Javaのバージョンを間違えたとき

※2020/04/28現在

最初私は最新のJava 14を入れてしまったのですが、ジョブを作り実行しようとしたときに例えば以下のようなコンパイルエラーが発生して、動かせませんでした。（いろんなコンパイルエラーがいっぱい出る）

> Incompatible conditional operand types Exception and TDieException

> The method updateStatOnConnection(Map<String, Object>, String, int, int, String...) from the type RunStat refers to the missing type Map

> The method convertToJsonText(Object, List<String>) from the type ResumeUtil refers to the missing type List

サポートされている正しいJavaのバージョンを追加でインストールすればよいのですが、環境変数を直してもあとから入れたJavaを認識してくれないのかコンパイルエラーが直りませんでした。

こんなときはTalendのメニューから
Windows -> Preferences -> Java > Installed JREs
をたどって、Java 1.8を追加します。そしてTalend自体を再起動すると直りました。


## Javaインストール後の環境変数設定

Javaを使えるように環境変数のPATHを設定します。

1. Windows Settingsで「environment」で検索して、「Edit the system environment variables」を選択
2. System Propertiesの画面の下のほうにある「Environment Variables...」をクリック
3. Environment Variablesの画面の下半分System variablesの中のPathを選択して、「Edit...」をクリック
4. Edit environment variableの画面でNewボタンから `C:\Program Files\Java\jdk1.8.0_251\bin` という値を追加
5. OKをいっぱい押して閉じる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490207/203030f1-b6a7-d4f5-6edb-7b2fffc2cec6.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490207/46d96145-4a3f-b41b-f82d-2936c97377f5.png)

※ `JAVA_HOME` の設定はしませんでしたがTalendは動きました。


# Talendインストール

以下からTalend Open Studio for Data Integrationをインストールします。

[オープンソースETL：Talend Open Studio for Data Integration](https://jp.talend.com/products/data-integration/data-integration-open-studio/)

2020/04/28現在、最新バージョンは 7.3.1.20200219_1130 でした。


# Talend起動

起動すると最初にどのプロジェクトを開くかを聞かれるので、新規作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490207/8f3e911f-67a5-da80-a299-b1cf59785475.png)

こういう画面になるので、Start Nowを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490207/33d5776d-d405-d2fb-c5d6-4278f7d3e3e3.png)

こんな画面になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490207/5581bc25-b05e-8c26-b46f-845d4d46828f.png)


# ジョブ作成

左のRepositoryのところで、Job Designsを右クリックするとその中にフォルダやジョブを作れます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490207/5c85ac9e-498d-eb0e-cded-2c4f4ecddacf.png)

ジョブをダブルクリックするとメインの領域がジョブを作るキャンバスのようなものになります。

右のPaletteで File > Input とたどると tFileInputDelimited というコンポーネントがあるので、これをキャンバスの領域にドラッグするとコンポーネントをジョブに配置できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490207/3f7cb31d-c7cf-2a2f-6ed4-389051197ef4.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490207/5951a5dc-ab2c-42d1-44af-538bb1501ead.png)

同じようにPaletteの Database > DB Common にある tDBOutput というコンポーネントも配置します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490207/4a4fbf2e-9dce-dbf7-01aa-b939ba389e9c.png)

配置した tDBOutput のアイコンの部分をクリックして、下にあるタブインターフェースの Component を選択するとこのコンポーネントに関する設定ができます。アイコンではなく薄い青色の四角のエリアをクリックしてもコンポーネントの設定画面が出てこないことに注意。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490207/a0f91442-42ba-db5d-0124-49e3a4270ce5.png)

DatabaseはPostgreSQLを選択してApplyをクリックすると、接続先PostgreSQLの情報を入力する画面になります。必要事項を入力しておきます。なにかをインストールせよって出てきたらインストールします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490207/ab4299eb-2043-186e-5782-03aff1f589c7.png)

戻って最初にキャンバスに置いた tFileInputDelimited というコンポーネントも設定を見ておきます。CSVファイルの場所などの設定項目がありますので、設定しておきます。適当なサンプルとなるCSVファイルも用意しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490207/a995bfd9-73d7-d4ae-8500-42a8bbd7bd42.png)

「Edit schema」のボタンを押して、カラムの構成を設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490207/10c05672-229a-9524-5792-ca4b0bad6270.png)

tFileInputDelimited のアイコンを右クリックして、 Row > Main を選択すると、マウスカーソルで接続先を選択できるようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490207/c20f5738-9e14-7006-0b6c-67aa4cf7a3f2.png)

接続先としてマウスで tDBOutput を選択すると、コンポーネントがつながります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490207/0e1740f8-41ae-1247-6fa9-96b03ac7c184.png)


# ジョブ実行

下のタブインターフェースの Run を選択すると実行できる画面になります。Runのボタンを押すと実行できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490207/87a6a9c3-c62f-0284-1199-738cd49d1331.png)

実行中。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490207/bb03e117-c9dc-ff84-2289-b67a358f7f59.png)

ログ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490207/1aad4098-4f71-6f0b-ff56-23968556d6e1.png)

PostgreSQLの中のデータを見てみたところ、用意しておいたCSVファイルの中身がINSERTされていることが確認できました。

以上。