clock2015.10.01 08:50
SERVICE
home

Talendの無償版(TOS)と有償版(Enterprise)の違い|Talend Open Studio によるビッグデータ分析(第9回)

AUTHOR :   ギックス

基本的なバッチ処理の開発なら無償版で十分。チーム開発や処理速度を求めるなら有償版が必要

今回まで様々なTalendの機能について、ご紹介してきました。これらの機能は、全て無償のTalend Open Studio(略称:TOS)のBig Data、または、Data Integrationで実現できます。一般的なソフトウェアでは、無償版と有償版の差別化を行うため、大きな機能制限を行う場合が多いです。しかし、TOSでは、そのような大きな機能制限を行っていません。そのため、一般的なバッチ処理を開発を行う場合、TOSの機能だけで十分対応できてしまいます。

では、Talendの無償版と有償版の違いは何か? 様々な機能の違いはありますが、今回は、「チーム開発」と「処理速度」の2つの視点でご紹介したいと思います。

無償版(TOS)はスタンドアローン開発、有償版(Enterprise)のクライアントサーバー開発

「チーム開発」と「処理速度」の2つの視点で機能の違いについて、ご紹介する前に、無償版と有償版の決定的な違いについて、ご紹介したいと思います。

無償版のTOSは、1人の開発者が、1つのPCで開発・実行を行うスタンドアローン開発の構成になっています。そのため、複数人の開発者で開発を行う場合、開発資産(ソース)の管理・同期を行うことができません。また、Talendがインストールされている開発環境から、ジョブを実行するサーバーにバッチプログラムを配置するためには、Talendから実行体をエクスポートし、ジョブ実行サーバーに手動で配置し、実行スケジュールを設定を行う必要があります。

しかし、有償版のTalend Enterpriseは、クライアント(開発環境)、運用管理サーバー、ジョブ実行サーバーの環境をトータルで提供しています。そのため、複数人での開発資産の管理・同期を行うことができます。また、運用管理サーバーからジョブ実行サーバーに対して、バッチプログラムの配置と実行スケジュールの設定までを行うことが可能です。

talend_enterprise

Talend Enterpriseのチーム開発に関連する機能

開発資産の履歴管理(共有リポジトリ)

それなりに大きいバッチ処理を開発を行う場合、ジョブなど開発資産の管理が重要になってきます。開発を進めていく間に、間違ってジョブを変更した場合や削除した場合、ある時点に開発資産を戻せるようにする必要があります。また、複数人で開発を行う場合、開発資産が先祖返り(過去の状態に戻る)しないようにする必要があります。

これらを行う機能として、Talend Enterpriseでは、共有リポジトリ(ファイルサーバーのようなもの)により開発資産の履歴管理を行うことができます。これの共有リポジトリによって、開発資産は、自動的にバージョン情報を付加して記憶されます。(バージョン情報には、バージョンと「いつ、誰が、どのような目的で登録した」という情報が記録されている) この共有リポジトリを使うことで、開発者間で開発資産の同期が行うことができ、また、開発資産を過去に戻したい場合も簡単に行えます。

そして、共有リポジトリには、システム開発でメジャーなSubversionを使用しています。そのため、システム開発に携わってきた開発者にとって、抵抗なく利用できると思います。

ジョブのパーツ化(ジョブレット)

大規模なバッチ処理を開発を行う場合、機能単位で分割(パーツ化)し、各開発者で開発を分担することがあります。また、様々な処理で利用する「汎用的な処理」をパーツ化し、開発効率を上げる場面が多くあります。TOSでもメインとなるジョブから、汎用化したジョブ(サブジョブ)を呼び出すことでジョブのパーツ化は行うことができますが、ジョブ間のデータの受渡方法に制限があり、完全なパーツ化は行えません。

Talend Enterpriseには、ジョブレットと呼ばれる機能と、それを使用するためのコンポーネントが用意されています。これによって、パーツ化されたサブジョブの入力データの受取と出力データの登録が行うことができます。これによって、パーツ化されたサブジョブは、1つの完成されたコンポーネントのように振る舞うことができます。また、サブジョブのデータの入出力を明示的に設定できるようなるため、サブジョブの入出力の設計が行いやすくなり、結果、サブジョブとして機能の切り出しが行いやすくなります。

ユーザーのアクセス権の管理

開発者が多ければ、それぞれが担当するジョブも異なってきます。また、開発者だけでなく、ジョブを実行する運用管理専属者が設けられる場合もあります。この様にTalend Enterpriseを使用するユーザーに対し、アクセス権の設定をロールベース(編集権限、実行権限、環境管理など)で設定できます。このようにアクセス権を設定することで、オペレーションミスなどを減らすことができます。

Talend Enterpriseの処理速度に関連する機能

パラレル処理

TOSで大量のデータを処理しようとしたとき、データ量に比例して処理時間がかかってしまいます。

Talend Enterprise Big Dataでは、Java言語の特徴であるマルチスレッドを使用し、パラレル処理で実装するための機能とコンポーネントが用意されています。これによって、大量データを分割し、同時に実行することで、TOSに比べて処理時間を半分以下にすることも可能です。(処理時間については、処理内容やPCの性能によって左右されます)

この他にTalend Enterpriseのパラレル処理として、サブジョブの並列実行を制御するコンポーネントが用意されています。(TOSのサブジョブ実行は順次実行のみ)

タスク(ジョブ)の並列実行

Talend Enterpriseは、運用管理サーバーと複数台のジョブ実行サーバーを持つことができるため、複数のジョブ実行サーバーを使用したタスク(ジョブ)の順次実行、または並列実行が可能です。これによって、複数のジョブ実行サーバーでタスクを並列実行することができ、一連のタスク処理を高速に行うことが可能です。

更に、Talend Enterprise Big Dataでは、ジョブ実行サーバーを仮想サーバー化することで、ロードバランシング(複数のサーバーの付加が均等になるように処理を振り分ける機能)と自動フェールオーバー(メインのサーバーが異常事態が発生した時にサブのサーバーに切り替える機能)を行うことができます。これによって、高速化と可用性(システムが連続できる能力)を上げることが可能です。

Talend導入は無償版から始めて、必要が出てきたら有償版に乗り換える

記事の冒頭でも記載しましたが、無償版のTOSだけでも「バッチ処理を開発」ことだけを行いたい場合は、十分対応できます。もし、バッチ処理の開発メインツールとして、導入を検討しているのなら、まずは、TOSで簡単なバッチ処理を開発して、使用感を確認してください。そして、プロジェクトで複数人で開発するなどの必要性が出てきたときに有償版に切り替えることを検討してみては如何でしょうか?

Talend Enterpriseには、今回、ご紹介した機能以外に、開発支援機能や製品サポートなどがあります。詳しい内容を知りたい場合、日本のTalend株式会社で定期的に無償セミナーを行っていますので、参加してみてはいかがでしょうか?(参照:Talend株式会社のイベント/セミナー)

【連載、Talend Open Studio によるビッグデータ分析】
  1. ”Talend”と”RapidMiner Studio”、2つのETLツールを比較してみた
  2. Talendのインストールと初期設定(Windows 8.1編) ~Javaのバージョンに気を付けろ~
  3. Talendで簡単なジョブの作成
  4. フォルダ中のファイルを変換して1つにまとめる
  5. フィルタリングと文字列置換とプログラムによる変換方法
  6. DB間のデータコピーを2つのコンポーネントだけで行う
  7. Amazon Redshiftへのデータインポートを2つのコンポーネントだけで行う
  8. Talendがバッチ処理の開発方法を変える ~スマートな開発を行おう~
  9. Talendの無償版(TOS)と有償版(Enterprise)の違い (本稿)
  10. TOSを使ってMicrosoft Azure SQL Data Warehouseを操作する
  11. TOSでギガ単位の適切なテストデータを作成する
  12. Web API からの取得結果をデータベースに登録する処理をノンプログラミングで実現する


 

SERVICE