ビッグデータ分析ツール : ETL、ESBの事例

cyber_c-624x404_R

← ビッグデータ分析ツール :  概要 へ戻る

 ETLとは?

ETL (Extract Transform Load)とは基幹系システムからのデータをDWH(データウェアハウス)(*1)のデータベースやデータマート(*2)へ書き出すという、データどうしの行き来をさせるツールです。ETLツールには、GUIを使ってデータの流れをビジュアルに構築するツールや、データ形式の変換機能、不正なデータを排除したり一定の形式にデータを修正するデータクレンジング機能などが含まれています。

 ESBとは?

ESB (Enterprise Service Bus)とはSOA(Service Oriented Architecture)を実現するためのミドルウェアです。基幹系サービスの間のデータのやり取りを行うためのプロトコル変換、データ変換機能やルーティング機能、リポジトリ機能を持ったツールです。データやサービスが仮想的な通信路を流れるバス型の構造になっており、ハブ&スポーク型のように一か所に通信や処理が集中することがないという構造になっています。EAI(Enterprise Application Integration)というアプリケーションの統合・連携のツールの呼称もあります。ESBと同様のものをEAIと呼ぶ場合もあります。

ETLとESBとの違いはなにか?

ここではESBとEAIとは区別せず、EAIと呼ぶことにします。EAIとETLとの違いを示した図は下記の通りです。(IBM社サイトより引用)

etl_001 (http://www.ibm.com/developerworks/jp/websphere/library/esb/system/2.html より) ETLとEAIとの間には、

  • リアルタイム性
  • 連携相手のサービスの改修が必要かどうか
  • データセット志向かメッセージ志向か
  • データの流れ方が一方向かそれとも相互に流れるか

という点での違いがあります。

ETLではスケジューラーや人などの外部トリガーにより、一度に大量のデータ処理を開始するというパターンが一般的であり、逐次リアルタイム処理を行うことはあまりありません。EAIではアプリケーションが処理フローを開始(MQメッセージのPUTなど)し、即時に一件ずつ処理するパターンが一般的です。つまりバッチとリアルタイムの違いとなります。例えば不正なフォーマットのレコードが含まれていた場合、ETLであればリジェクトデータとしてファイルに溜め込んでおき、処理終了後に内容を確認するといった対応を取ります。EAIの場合は該当レコードを見つけるとエラー処理用フローを走らせ、一件ごとに送信元へのエラーメッセージ返答やEメール通知などを行う形になります。 (中略) ETLツールはDBやファイルなどのデータソースからデータを抽出します。アプリケーションはDBやファイルへのデータの書き出しを完了しているため、ETLが導入されてもアプリケーションを改修する必要がありません。一方、EAIツールを導入する際にはEAIにデータを「渡す」ことをアプリケーションが意識します。 (中略) ETLはファイル内のデータとパッケージ製品が持つデータをマージして別のDBに格納する、といった複数レコードを同時に処理する機能を備えています。集計やソート、比較などを製品機能として実現できる「データセット志向」のツールであるといえます。EAIはリアルタイム性が重視されることからも分かるように、全レコードを読み終わらないと作業ができないような処理は得意としていません。 (中略) ETLはN個のデータソースから1つのデータウェアハウスへ、一方向にデータを流してデータを溜め込んでいくといった使い方が一般的です。EAIでは問い合わせのための要求応答処理、データ更新のための非同期一方向処理、不特定多数の送受信者が混在するpublish/subscribe処理などの多様な連携処理を得意としていますが、N個の入力を1つにまとめるN:1連携の機能は得意としていません。 (http://www.ibm.com/developerworks/jp/websphere/library/esb/system/2.html より)

ETLでもEAIでもいずれにせよデータベースや企業の基幹系アプリケーションやウェブサービスの間のデータをつなぐためのツールであるという点では同じです。ETLでもEAIでも、例えば下記のJaspersoft ETLのような、グラフィカルな操作が可能です。

shot-etl1_R

shot-etl2_R

(http://jaspersoft.biz/products/jbi4/etl より)   (*1)データウェアハウス(DWH)とは? データウェアハウス(DWH)とは、データの倉庫という意味で、時系列データを格納して蓄積しておくことのできるシステムのことです。提唱者の定義では、、「データウェアハウスは、意志決定(Decision)のため、目的別(Purpose-oriented)に編成され、統合(Integrate)された時系列で、削除(Delete)や更新(Update)しないデータの集合体」となっています。複数の基幹系システム(製造管理システム、販売管理システム、会計システムなど)から、トランザクション(取引)を抽出して、再構成・再蓄積したシステムを指すことが多いです。 (*2)データマートとは? データマートとは、データウェアハウスの中から特定の目的に合わせた部分を取り出したものです。必要なものだけを取り出したデータに対して処理を行わせることで、処理するデータ容量を減らし、レスポンスを早める目的で用います。

ETLの事例

ESBの事例

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です