はじめに
ETL開発ツールは数多く存在します。
個人的にイチオシのTalendをはじめ、有名なツールだとDataSpider, ASTERIA, DataStageなど(ETLというより、EAI色が強いですが…)。
しかし、どの製品紹介ページを見ても、似たような謳い文句が書いてあって(GUIで簡単に開発!とか、多様なデータアダプタ!とか、様々なデータ形式をサポート!とか)、
いまいちどの製品がどう優位なのか分かりにくいです…
ですが、私は声を大にして言いたい。
Talendでよくね?(低コストで開発したいなら特に)
と。
というわけで、優秀なのにいまいち評価されず、ETL開発ツール界で覇権を握り切れていないTalendについて、何故そんなにTalend推しするかを書いていこうと思います。
Why Talend?なんでTalendが良いのか
1. TalendOpenStudioなら無償
Talendのかなり大きなメリットとして挙げられるのは、TalendOpenStudioは無償で使用できる、という点です。
少し前の記事ですが、こちらの記事(無償(OSS)のETLツールについて調べてみた)によると、まともな無償ETLツールは、ほぼTalendのみということです。
「ふーん。無償ね。でもどうせ結構制限あるんでしょ?」
と思われた方。ごもっともな考えだと思います。
が、Talendについては、無償版でほぼ全てのことができます。制限は無いと言っても良いでしょう。
有償版で付属するのは、サポートやより良いデバッグ機能、モデリング機能で(これが全てではないかもしれませんが)、メインのETL開発は無償版と変わりません。
ですので、無償版だからといってそんなにデメリットはないのです。
2. GUI開発環境
これは他のETLツールも推しているので…Talend特有のメリットではありませんが。
GUIでかんたんに開発できます!
この画像のように、アイコンを落としていって、繋ぎ合わせて入力⇒変換⇒出力のフローを構築する、という開発方法です。
コンポーネントの種類を覚えておけば、もう本当に、アイコンを落として繋げて終わり、という感じです。
3. 標準付属する数多くのデータ操作コンポーネント
Talendには、デフォルトで数多くのコンポーネント(処理部品)があります。
- CSVなどの区切り文字入出力
- その他ファイル入出力
- XML, JSON, Excelなど
- DB操作関連
- Sqlserver, Oracle, MySQL, PostgleSQL, Accessなど
- データ編集
- tMap(データ紐づけ、汎用項目変換), tAggregateRow(集計など), tSortRow(ソート), tRepace(置換),など
- インターネット関連/Webサービス関連
- tSendMail(メール送信), tRSSInput(RSS読み込み), tSOAP(SOAP通信), tREST(REST通信)など
まだまだまだまだあります。把握しきれません。
とりあえず、基本的にバッチ処理として思いつくようなコンポーネントは、デフォルトコンポーネントとして用意されています。
4. 大手のクラウドサービス, アプリに連携できるコンポーネント
今時は、やはりクラウドサービスと連携できるか否か、というのは大きなポイントだと思います。
Talendは、大手のクラウドサービスとの接続用コンポーネントも提供しています。概ねタダだと思います。
AWS, GoogleStorage, GoogleDrive, Dropbox, Salesforce, SAPなんかは、Talendをインストールした時に一緒に入っていました。
他にも、繋ぎたいサービスやアプリがあったら、「Talend ○○○」とかで検索すると、そのコンポーネントがあるか分かると思います。
もし仮になかった場合でも、最悪サービス側がSOAP, REST等の口が開いているのであれば、tSOAPやtRESTなどのコンポーネントで連携することは可能です。
5. もし必要な機能(コンポーネントなど)がなくても自分で開発できる
Talendには、数多くのコンポーネントが存在しますので、殆どのケースで必要なコンポーネントが足りない、ということは無いでしょう。
しかし、もし仮に、要件を満たすコンポーネントが無い!という場合でも安心です。
Talendは、結局はJavaのプログラムなので、自分でコードを記述して開発することもできます。
tJava, tJavaRow, tJavaFlexなどのJavaコードを記述できるコンポーネントが存在します。
また、コンポーネント自体を自身で開発することもできます。
そうした自由度の高さもありますので、Talendで完全に手詰まりになる、ということはまずないと思います。
(もちろん、開発工数的なところで手詰まりはあり得るかもしれませんが…)
6. そこそこ情報がある
Googleなどで「Talend ○○○」と調べると、多くはありませんが、そこそこ情報が出てきます。
また、入門サイトや使い方に関するサイトなどもありますので、他のマイナーなETLツールと比べたらメリットと言えます。
ちなみに、このブログでも入門やコンポーネントに関する記事を書いています。
(Talend Open Studio でバッチ開発)
おわりに
もし、ETLの要件がTalendの持つ機能内で完結できるのであれば、TalendはETL開発ツールとして、とてもおススメです。
現在、私が携わっているプロジェクトでも、ゴリゴリにTalendを使用してバッチプログラムや移行ツールなどを開発しています。
とても開発効率が高く、本当に優秀なツールだと思います。
もっと流行っても良いと思うのですが…
他社製品と違って、あまり売り込んでいないのでしょうか。