Informatica PowerCenter開発者の視点で考えるTalendの機能: 第1部
先日Talendに入社したカスタマーサクセスアーキテクトのSundaramです。Talendによるデータ戦略を管理するためのアーキテクチャーのガイドラインとベストプラクティスをお客様に提供しています。Talendに入社する前にデータウェアハウスの実装を何件か担ったことがありましたが、そのような場合にはETLツールとしてInformatica PowerCenterが一般的に採用されていました。あるテクノロジーから別のテクノロジーへの移行は、大きな課題となることがあります。しかし、PowerCenterでのやり方をTalendにそのまま「複製」するのではなく、一歩引いて、Talendの仕組みや機能、PowerCenterとの違いを理解することが重要です。このブログでは、Informaticaから移行して先端的な統合プラットフォームを導入した経験をご紹介し、皆さんがInformaticaからTalendに移行する際の作業を最小限に抑えるうえでの参考にしていただきたいと思います。
Talend vs. Informatica PowerCenter:両者の違いについて
どちらのツールも本質的にはデータをソースからターゲットに移行するという同じ機能を果たしますが、その実現方法が異なっています。それぞれの方法にはそれぞれのメリットがあります。ETLジョブを設計する前に、これらの方法の長所と短所を理解することが重要です。
まず、どちらのツールもグラフィカルユーザーインターフェイスを提供し、ソースからデータを抽出してトランスフォーメーションを行い、ターゲットにロードしますが、実装が異なることを理解する必要があります。TalendはネイティブJavaコードを生成するので、どこでも実行できます。一方、PowerCenterは、Informatica独自のエンジンが実行に使用するメタデータを生成してRDBMSリポジトリに格納します。
Talendがコードジェネレーターであることを理解しておくことが重要です。つまり、ETL(独自のスタンドアロンサーバーで実行)エンジンとしても、ELT(ターゲットサーバーでネイティブに実行)エンジンとして実行できます。Talendによって生成されたJavaコードは、Javaをサポートするプラットフォームであれば、どこでも(データセンターのサーバーでも、クラウド上でも、またはラップトップ上でも)実行できます。どちらのプラットフォームもデータ統合に必要なタスクの大半を処理するコンポーネントを提供していますが、カスタマイズが必要な場合もあります。そのためにカスタムコーディングが行われますが、このプロセスがPowerCenterを使用する際のやっかいで非効率的な点です。一方、Talend Open Studioの場合はお客様独自のカスタムコンポーネントをJavaで構築し、面倒なく統合できます。これらが、データ統合ジョブを設計する際に重要となる考慮事項です。
ダウンロード >> Talend Open Studio for Data Integration
ジョブの設計方法
ジョブの構築方法が異なる点も重要です。PowerCenterの場合は、まずマッピング(本質的には「データフロー」)を開発します。この段階で、ソースとターゲットの間のマッピングとトランスフォーメーションロジックが定義されます。マッピングが検証され、そのメタデータがリポジトリに保存されると、セッションとワークフロー(「プロセスフロー」)が作成されます。その後、ソースとターゲットのオブジェクトへの物理接続が割り当てられ、タスクが実行順に並べ替えられ、エラー処理/通知手順が実装されます。
Talendでは、データフローとプロセスフローの両方がシームレスに実装されます。「データフロー」を実装する特定機能を提供するさまざまなコンポーネントを使用して、「プロセスフロー」を定義するジョブを構築します。「プロセスフロー」は、特定のスキーマに基づく「行」を使用するコンポーネント間の「トリガー」と「データフロー」を使用して実装されます。
理解しやすいように、PowerCenterとTalendの概念を対応させて説明します。
Informatica PowerCenter |
Talend Studio |
説明 |
リポジトリ |
プロジェクトリポジトリ |
PowerCenterリポジトリとTalendプロジェクトリポジトリには、再利用可能なメタデータオブジェクト(ジョブ、DB接続、スキーマ定義など)が含まれます。Talendの場合は、独自のソースコード管理システムを使用するのではなく、SVNまたはGITのソースコード管理システムにシームレスに統合されます。 |
フォルダー |
フォルダー |
フォルダーは、機能に基づいてオブジェクトを整理するのに役立ちます。PowerCenterの場合はサブフォルダが許可されませんが、Talendでは許可されます。 |
ワークフロー |
ジョブ |
ワークフロー/ジョブは、すべての接続と依存関係が定義されたETLプロセスフローを実装します。Talendの場合、ジョブはプロセスフローとデータフローの両方を表します。 |
ワークレット/再利用可能セッション |
ジョブレット |
ワークフロー/ジョブで再利用可能な一連のタスクの組み合わせです。エラー処理、通知、繰り返し可能プロセスなどの再利用可能コードに使用できます。 |
セッションとマッピング |
コンポーネント |
PowerCenterでは、接続、ファイルの場所、エラー処理がセッションで個別に定義されます。一方Talendでは、マッピングとセッションの機能が結合され、コンポーネントまたはプロセス/データフローによりリンクされたコンポーネントセットに実装されます。 |
トランスフォーメーション |
コンポーネント |
Talendにはコンポーネントの大規模ライブラリーがあり、これがさまざまなトランスフォーメーションをサポートします。たとえば、頻繁に使用されるコンポーネントのtMapは、Informaticaの式、ルックアップ、ルーター、ジョイナーのトランスフォーメーションを組み合わせたものとなります。 |
ソースとターゲット - 定義と接続 |
リポジトリメタデータ |
Talendでは、スキーマの定義と接続を各コンポーネントにハードコーディングできますが、ベストプラクティスとしては、リポジトリメタデータに定義してコンポーネントで再利用することが推奨されます。 |
インターフェイスの詳細
最後に、EclipseベースのTalend Open Studioインターフェイスについて、PowerCenter開発者の視点から確認していきましょう。
- リポジトリ(PowerCenterのナビゲーターに相当)では、すべてのリソース(フォルダー、ジョブ、スキーマの定義と接続、パラメーターと変数)が定義されます。
- デザインエリア(PowerCenterのワークスペースに相当)では、ジョブが組み立てられます。
- 下部のコンテキストタブは、コンポーネントの設定と文書化、およびジョブの実行に使用されます。PowerCenter DesignerおよびWorkflow Managerツールで提供されるいくつかの機能を組み合わせています。
- パレット(PowerCenterのトランスフォーメーションツールバーに相当)は、利用可能なすべてのコンポーネントのライブラリーです。
- パースペクティブは、Studio全体のレイアウトとスタジオ内のさまざまなエリアの配置を決定します。主要なTalend製品には、それぞれに独自のパースペクティブがあります。大きな利点は、開発者が製品間で複数のツールを切り替えて使用する必要がないことです。製品間で統一されたユーザーインターフェイスを使用できることで、開発者の生産性が向上します。
Informaticaのアーキテクトとして数年の経験を積んで得た最も重要な教訓は、どのようなテクノロジーも、それを実装するためのベストプラクティスが優れていなければ十分な役割を果たすことができないということです。Talendを使用する場合も、同じことが当てはまります。Talendへの投資の価値を最大限に引き出したい場合は、ベストプラクティスを実装し、ソフトウェア開発ライフサイクルの一環としてそれに従う必要があります。導入として、Talendのジョブ設計パターンとベストプラクティス(第1部、第2部、第3部、第4部)もご覧ください。
まとめ
Talendでの活動は始まったばかりですが、PowerCenterとTalendの違い、Talendの仕組みとそのベストプラクティスを理解することで、Talendをデータ統合プラットフォームとして活用して組織に大きな価値を提供できることを、この短い期間で学びました。このシリーズ第2部は、Talend Big Dataプラットフォームを取り上げ、これまでに私が確認したエキサイティングな機能について説明したいと思います。次回をお楽しみに。