LoginSignup
69
79

Talend入門 (1) ~はじめてのTalend~

Last updated at Posted at 2019-03-10

更新情報 2023.11.21

開発ツールとして便利に利用してきた「オープンソース製品 Talend Open Studio」ですが、Qlik社より2024年1月31日をもって廃止されるという発表がありました。

詳細 メーカー発表リンク

we will be discontinuing the open-source product: Talend Open Studio, effective January 31, 2024. 

開発ツールとして便利に利用してきただけに残念ですね。
今後Talend Studioは有償版のみとなるため、本記事も削除を検討しましたが、内容自体はStudioの使い方備忘録ではあるのでこのまま置いておくことにいたします。

全体の目的

Talendの超簡単なサンプルジョブを作成して,ETLジョブ開発に必要なスキルを習得することが目的です。

対象者

ETL / EAI技術者

環境

使用環境 バージョン
OS Windows10
Talend 7.1.1

サンプル一覧

以下の順番で習得していきます

# 内容
1 はじめてのTalend(今回)
2 ファイルI/O
3 データベースI/O
4 tMap
5 イテレータ
6 メタデータ
7 Context変数
8 Global Map
9 tHashInput/tHashOutput
10 エラーハンドリング
11 ロギング
12 子ジョブ(ジョブのネスト)
13-1 設定ファイル読み込みオリジナル版
13-2 設定ファイル読み込みコンポ版
14 tJava

サンプルコード(Talendプロジェクトデータ)

今回の目的

Talendとはなんぞやを実際に触ってみて理解する

  • Talendとは
  • セットアップ
  • はじめてのジョブ作成(Hello world.)

Talendとは

以下の特徴をもったETL製品です。

  • ETL
    • ETL処理(Extract/Transform/Load)を構築できる
  • オープンソース(として発展してきた。。2024/1/31で無償版は廃止)
    • 先進技術への対応が早い
  • GUIベース
    • アイコン配置だけで開発ができる
  • Java
    • 構築したバッチ処理はJavaアプリケーションなのでJVM上で実行可能

セットアップ(ダウンロードは有償版のみとなりました)

1. マシン準備
今回はWindows10で8GBメモリの環境にセットアップしました。
推奨環境については本家 ソフトウェア要件 をご確認ください。

2. JDKダウンロード
JDK1.8が必要になります。
Oracle社のJDKサイトよりダウンロード・インストールして下さい。
Java8を選びます
WS000003.png
64bit版をダウンロード

WS000004.png

3. JDKインストール
デフォルト設定で大丈夫です。

WS000018.png

4. Talendのダウンロード
Talend社のサイトより「[Talend Open Studio for Data Integration]
(https://jp.talend.com/products/talend-open-studio/)」をダウンロードして下さい。
WS000002.png

5. Talendのインストール
ダウンロードしたzipファイルを展開するだけです。
c:\talend フォルダを作成しそこに展開しました。

WS000019.JPG

  1. 起動確認
    「TOS_DI-win-x86_64.exe」を実行します。
    WS000009.JPG
    承認をクリック
    WS000010.JPG
    このまま完了ボタンをクリック
    WS000011.JPG
    閉じるをクリック
    WS000013.png
    右下に追加インストール可能な機能の確認状況が表示されますのでそのまま待ちます。
    ※進めてもよいのですが、今回はステップを踏んでいきたいので。
    WS000014.png
    「Talendパッケージの追加」が表示されたら「必須のサードパーティライブラリ」にチェックされていることを確認しFinishボタンをクリックします。
    WS000015.png
    ライセンス条項の確認画面が表示されたら「選択されたライセンスに同意します」を選択して、「全て同意」で進めてください。
    必要なJDBCドライバ等のライブラリのインストールが始まります。
    右下の新規Talend機能をインストールが完了するまでそのまま待ちます。
    WS000016.png

はじめてのジョブ作成(Hello world.)

それではジョブを作成していきましょう。
※Talendで作成するバッチ処理のことをジョブといいます。

Hello world.ジョブ作成

リポジトリの[ジョブ]を右クリックし[ジョブの作成]を選択します。
WS000021.png
[名前]に"hello"と入力し[Finish]ボタンをクリックします。
WS000025.JPG
hello というジョブをデザインできる状態となりました。
実際にコンポーネントを配置する領域のことを「デザインワークスペース」と呼びます。
WS000032.png
コンポーネントパレットの「その他」を開くと[tMsgBox]があります。
デザインワークスペースにドラッグ&ドロップで配置します。
2019-03-09 16_31_39-Talend Open Studio for Data Integration (7.1.1.20181026_1147) _ Local_Project (2.png
[実行(ジョブ名)]のタブを開き[実行]ボタンをクリックするとビルドされ実行できました。
これだけでジョブが完成です。なんとも簡単ですね。
2019-03-09 16_32_58-スタート2.png

テストデータ生成

バッチジョブが簡単に生成できることが確認できたのでもう少しだけ処理を追加してみます。
まずはコンポーネントパレットの[その他]にある[tRowGenerator]というデータ生成用コンポーネントを配置します。
2019-03-09 16_37_51-Talend Open Studio for Data Integration (7.1.1.20181026_1147) _ Local_Project (接.png

次に[tLogRow]という標準出力用コンポーネント少し違うやり方で配置してみます。
デザインワークスペース上でマウスカーソルを一度左クリックします。そこで tl とキーボード入力してみてください。名前がマッチするコンポーネント一覧が表示されますので[tLogRow]を選びます。
2019-03-09 16_39_07-Talend Open Studio for Data Integration (7.1.1.20181026_1147) _ Local_Project (接.png

このようにあらたに2つのコンポーネントが配置できました。
生成データを定義するために[tRowGenerator]アイコンをダブルクリックします。
2019-03-09 16_39_47-Talend Open Studio for Data Integration (7.1.1.20181026_1147) _ Local_Project (接.png

設定ダイアログが開きます。
2019-03-09 16_40_10-Talend Open Studio for Data Integration - tRowGenerator - tRowGenerator_2.png

[+]ボタンを2回クリックし2カラム準備します。
2019-03-09 16_41_53-Talend Open Studio for Data Integration - tRowGenerator - tRowGenerator_2.png

1カラム目の生成データはシーケンスにしたいので以下のように設定します。

設定項目 設定値
タイプ int | Integer
関数 Numeric.sequence(String,int,int)
m2.png

ここまで出来たらデータの流れを定義します。
[tRowGenerator]アイコンを右クリックし[ロウ] - [メイン]を選びます。
無題1.png

マウスで[tLogRow]アイコンにつなぎます。
2019-03-09 16_44_18-Talend Open Studio for Data Integration (7.1.1.20181026_1147) _ Local_Project (接.png

これでデータ(Row)の流れを定義できました。
GS000010.png

標準出力の表示方式を定義します。
[tLogRow]アイコンを選択し、[コンポーネントタブ]にある[モード]の設定を[テーブル]に変更します。
m3.png

ここで一度実行してみます。
[実行(ジョブ名)]タブで[実行]ボタンをクリックします。
Helloworldメッセージボックスが表示されました。
ん? メッセージボックスのOKボタンを押してみます。
m4.png

実行結果表示画面に[tRowGenerator]で準備したテストデータが出力されました。
つまり、メッセージボックスを表示したあと生成データ出力、という処理順序で実行されました。
GS000009a.png

動きはしましたが、メッセージボックスは画面の配置どおり、最後にしたかったんです。
なので、処理の順番を設定してあげます。
[tRowGenerator]アイコンで右クリックし、[トリガー] - [サブジョブがOKの場合]を選択します。
m5.png

マウスで[tMsgBox]アイコンにつなぎます。
※水色で囲まれた処理の塊を「サブジョブ」と呼びます。
m6.png

これでサブジョブ毎の処理順序を定義できました。
GS000011.png

実行してみます。
メッセージボックスが表示されたときには先ほどとは異なりテストデータも出力できています。
m7.png

メッセージボックスのOKをクリックすることでジョブ終了となります。
m8.png

実行モジュールの配布

Talend上で実行確認ができたら実際に配布する方法も知っておきましょう。
リポジトリの[ジョブ]の中にあるhelloジョブを右クリックし[ジョブをエクスポート]を選択します。
m9.png

「ファイルをアーカイブするには」で出力先を指定し[Finish]ボタンを押すことでアプリケーションとして配布できる状態で保存されます。
※今回の例では[アイテム]と[Javaソース]は不要だったのでチェックを外しました。
2019-03-09 16_51_04-ジョブをエクスポート.png

hello_0.1.zipを展開すると以下のように起動スクリプトがあらかじめ準備されています。

ファイル名 種類
hello_run.bat Windowsでのコマンドプロンプト用
hello_run.ps1 PowerShell用
hello_run.sh /bin/sh用

2019-03-09 16_54_19-C__work_hello_0.1_hello.png

hello_run.batをJVMが動作するマシン上で実行してみます。
2019-03-09 16_53_11-スタート.png

まとめ

まずはTalendとはどのようなツールか、という観点で実際に触れることができたと思います。
プロパティを少しいじるだけでも振る舞いをいろいろと変えられるのでぜひ試してみてください。
利用したコンポーネントと用途をおさらいしておきます。

  • tMsgBox
    • メッセージボックス表示
  • tRowGenerator
    • データジェネレータ
  • tLogRow
    • 標準出力

今後もサンプル内容としてはこのレベル、つまりはほんのさわりの部分だけを解説する記事でやっていこうと思います。

次回以降

次回はファイルI/Oをやっていきます。

69
79
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
69
79