2012.04.04

第144回 (B) ETLもSNSの時代?-Talendのご紹介【IT・情報システム支援】

第一事業本部 GEXSUS推進部 アシスタントマネージャー 川村 善博

DivaSystem GEXSUSでは、グループ会社の会計システムにある仕訳データや、各種業務システムの明細データを統合する際に、ETLツールである「Talend」を利用しています。私の場合は、このTalendに触れる機会が多いのですが、社内ではあまり浸透していないことから、「どんなことができるの?」とか「どうすればつくれるの?」、「むしろ、つくって!」と半ば強引なお願いも含めて、問い合わせをいただくことがままあります。今回のメルマガ執筆は丁度良い機会ですので、Talendの紹介と簡単な使い方について、少々触れてみたいと思います。


【Talendとは】
総合開発環境Eclipseペースのデータ統合ツール「Talend Open Studio」でJava/Perlコードを生成する、高価なETLツールと同等の入出力コンポーネントの機能、性能、使いやすさ、運用性を有したデータ統合のためのソリューションです。


【ETLとは】
ETLとは、Extract(抽出)・Transform(加工)・Load(書き出し)を略したもので、データを必要に応じて変換させる為の仕組みを指します。 同一データベース上だけでなく、異なるサーバ間でデータを連携させることが可能になります。 例えば、基幹系データベースからデータを取り出し(Extract)、特定の条件を満たすデータについては加工・変換を行い(Transform)、データウェアハウスに書き込み(Load)させることができます。


【Talendのご紹介その1】
Talend社のHP上より、「Talend Open Studio(オープンソース無償ライセンス)」がありますので、ダウンロードしインストールを行うとすぐに試すことができます。
画面の右側にある「パレット」にある多数のコンポーネントの中から、ドラッグ・アンド・ドロップでデザイナ上へ配置します。
今回は代表的なコンポーネントである、ファイルの読み込みと書き込み、加工を行うコンポーネント図1の様に配置してみました。

図1


以下は、各コンポーネントの概要となります。

tFileInputDelimited
何らかの区切文字で区切られているファイルを読み込むためのコンポーネントです。
読み込むと次のtMapコンポーネントにデータが渡されます。

tMap
レイアウトの変更を行うコンポーネントです。列の入れ替え、行の絞り込み、データの分岐など多彩 なレイアウト加工を行うことが可能です。
tFileOutputDelemited
tFileInputDelimitedの逆です。ファイルに書きこみを行います。


図1はある意味、単純なETLの基本構造を示していると言えます。「抽出元」、「書き出し」がファイルではありますが、これをデータベースコンポーネントに置き換えることも可能ですし、更に複雑な「加工」処理を行うことも可能です。Talend上では600種類以上のコンポーネントが用意されているので、それらを組み合わせて様々な業務要件に応じた処理を作成することができます。
ちなみに、このコンポーネントの配置と設定変更を行うのに要した時間は僅か10分程度です。
図1の処理をETL製品を使わずに実現するためには、独自でプログラムを組む必要があり、データの仕様が変わるごとに開発コスト・メンテナンスコストが非常に高くつくことになります。 逆に言えば、ETL製品をうまく活用することで、簡単なデータ連携であればノンプログラムで実装することができ、また、短期間で大規模な連携処理を構築することが可能です。


【Talendのご紹介その2】
図2


最近、一風変わったコンポーネントを見つけましたので、ご紹介いたします。「tTwitterOutput」です。 これを先程の図1にあるtFileOutputDelimitedの後ろに繋げてみました。(図2)
既にお分かりかと思いますが、図2を設計書風に記載すると以下の通りになるかと思います。

    <1>指定されたディレクトリに存在するCSVファイル名を読み込む。

    <2>1列目と2列目の内容を入れ替える。ただし、3列目の内容が「100」であるデータのみを対象とする。

    <3>指定されたディレクトリに対し、CSVファイル形式で書き込みを行う。ファイルが存在しない場合は新規にファイルを作成する。

    <4>3.の処理が正常終了した場合、特定のTwitterアカウントに対し、「処理が完了したなど。」とつぶやく。


完了通知メールならぬ、まさかの完了ツイートを実装することができそうですが、業務上は先ず日の目を見ることはなさそうです。ちなみに、逆のコンポーネント(特定の検索文字に該当するツイートを読み込む)tTwitterInputもあります。ここで私が何を伝えたかったかと申しますと、tTwitterInput/Outputコンポーネントは、あるエンジニアが作成したものでTalendのコミュニティに公開されています。。従いまして、オープンソースであるがゆえに、Javaのスキルさえあれば、独自のコンポーネントを作成することも可能であるというのがTalendの大きな特徴でもあります。

簡単ではございますが、Talendのご紹介は以上となります。少しでもご興味がありましたら、是非同製品に触れてみていただけたら幸いです。

私は今後もDivaSystem GEXSUS導入プロジェクトに活かすべく精進して参る所存です。引き続き皆様からのご指導の程よろしくお願いいたします。

MAIL MAGAZINE

メールマガジン

NEWS

ニュース

SEMINAR / EVENT

セミナー / イベント

セミナー/イベント一覧を見る

お問い合わせ