インフォマティカのBig Data Managementが優れている3つの理由

HadoopとNoSQLを使用したビッグデータの世界では、ビッグデータ処理エンジンへの関心が高まっています。現在、多種多様なビッグデータ処理エンジンが登場しているため、組織は自身のビッグデータ統合ニーズに適した処理エンジンを決定することが難しくなっています。Sparkは、機械学習やグラフ処理などの新しいユースケースを可能にする画期的な新技術です。

インフォマティカは多くのオープンソース技術を自社製品に導入しており、今後も引き続き利用、強化する予定です。インフォマティカでは、Sparkをすでにグラフ処理に使用しています。いっぽう、当社の最新のBig Data Management製品はInformatica Blaze on YARNを使用しており、バッチETL処理についてはSparkより2〜3倍高速です。Informatica Blazeについては、後で詳しく説明します。

ビッグデータ処理エンジンのパフォーマンスを評価する際には、次の重要点を踏まえて判断するようにしてください。

  1. パフォーマンス:ビッグデータ処理エンジンの評価では、パフォーマンスが重要な要素です。ビッグデータエンジンを選択する前に、次の点を確認してください。

同時実行性:データ統合において、複数のジョブを同時実行することはよくあります。複数のジョブを同時実行する際に、ビッグデータ統合ツールのパフォーマンスに問題がないことを確認してください。たとえばSparkには、同時ジョブの実行に関する制限事項がいくつかあります。Sparkの場合、ジョブごとに新しいYARNアプリケーションが起動されます。つまり、10個のマッピングを実行すれば、10個のYARNアプリケーションが起動されるということです。アプリケーション間でリソースが再利用されることはありません。これは、Sparkのみをパッケージ化したすべてのデータ統合ツールに言えることです。

メモリ使用率:もう1つの大きな注目点は、メモリ使用率です。Sparkなどのインメモリ処理エンジンに適したユースケースもありますが、すべてのユースケースがSparkでの処理に適しているわけではありません。Sparkは多くのメモリを必要とします。Sparkでは、従来のRDBMSと同様にプロセスがメモリにロードされ、キャッシュとしてメモリに保存されます。Spark処理と同時に他のリソース使用量の多いサービスをHadoop YARNで実行したり、データが大き過ぎてメモリに完全に展開できなかったりすると、Sparkのパフォーマンスが低下する場合があります。

Sparkは対話型クエリや機械学習プロセスなど、同じデータを何回も再利用する必要があるユースケースには適していますが、データ統合(例:ETL)などのバッチユースケースには適していません。バッチETLの場合、メモリ量を増やしても効果が出ない可能性があります。インメモリのユースケースに適したエンジンでも、大ボリューム、高スループットのバッチETL処理には適さない場合があります。

パフォーマンスベンチマーク:ソフトウェアベンダーにパフォーマンスベンチマークを要求してください。パフォーマンスとスケーラビリティを必要とする、ビッグデータ管理のユースケース用のビッグデータソフトウェアを評価していることを念頭に置いてください。TPCベンチマークは、パフォーマンスと価格性能比についてベンダーを中立的に評価する方法として最適です。

  1. 抽象化レイヤー:この数年でビッグデータの世界は大きく変容しており、現在も変遷し続けています。たとえば最近では、リソース管理機能用のYARNが開発されたり、新しい処理エンジンとしてSparkが開発され、MapReduceプログラミングフレームワークからの移行が進んだりしています。

今はSparkが話題になっています。Sparkは現時点では優れた処理エンジンかもしれませんが、すぐに別のエンジンが注目を浴びる可能性もあります。そのため、抽象化レイヤーを提供しているベンダーを見極めて、特定の処理エンジンに縛られないようにする必要があります。たとえばコード生成ツールはサポート対象エンジンのコードのみを生成するため、特定の処理エンジンに限定されます。

このため、他の処理エンジンに移行する場合には、コードによる処理内容を把握する必要があります。ソフトウェアベンダーに抽象化レイヤーの有無について確認しておけば、ビッグデータ技術が変遷しても自社のビッグデータ管理プラットフォームを引き続き使用できます。

  1. 機能拡張性:ビッグデータの活用を開始するには、全体的、長期的な視点が必要です。今日、ビッグデータは単なるビッグデータ統合以上の意味を持っています。ビッグデータプロジェクトを成功させるには、ビッグデータの統合、ガバナンス管理、セキュリティで構成されるビッグデータ管理フレームワークについて、ソフトウェアベンダーに確認しておく必要があります。

機能拡張性は、ベンダーとの商談における重要な要素です。Sparkなど1つの処理エンジンのみのサポートにこだわるベンダーでは、ビッグデータプロジェクトの成功は期待できません。全社的な機能を網羅できるビッグデータソフトウェアを探してください。つまり、ビジネスアナリストによるデータプロファイリングやデータ品質のルール/ガバナンス管理、開発者による複雑なファイルの解析や複雑な変換ロジックの開発等、網羅的に機能を提供しているソフトウェアです。

ビッグデータの管理は、ツールで結合演算やデータ集計をできればよいというものではありません。ツールやプラットフォームによる、さまざまなデータ形式、解析、標準化、正規化、データ品質、データマッチング、データマスキングの処理方法を確認する必要があります。たとえば処理エンジンでさまざまなデータ型(タイムゾーンが含まれるタイムスタンプなど)を動的に管理できるかなどについて確認してください。

以上の3つの重要条件を考慮していないパフォーマンスベンチマークには注意してください。たとえば最近、あるソフトウェアベンダーがパフォーマンスベンチマーク調査を行ったのですが、その内容はMapReduceをサポートする2年前のInformatica Big Data Editionと、Sparkをサポートするその会社のソフトウェアを比較したものでした。この調査では、前述の重要な点が考慮されていません。次の理由から、このベンチマークは妥当なものではありません。

  • このベンチマークでは、単一のインスタンス(VM)で、ディスクI/Oを集中的に使用するMapReduceエンジンと、Sparkのインメモリエンジンを比較しています。
  • このベンダーは、パフォーマンスと価格性能比についてベンダーを中立的に評価する業界標準のTPCベンチマークではなく、カスタムベンチマークを選択しています。ビッグデータの世界では、テラバイト/ペタバイトが標準ですが、このベンチマークでは2 GB以下のソースデータを単一の最適化されたVMで処理しており、シャッフルフェーズのコストが明確ではありません。
  • このユースケースは、たった1,200万個のレコードを4基のCPU、5 GBのメモリ、200 GBのストレージを搭載したクラスタで実行したものです。これでは実際のビッグデータ環境に近い条件とは言えません。

インフォマティカでは、前述の3つの重要条件すべてに対応し、かつお客様の実際のワークロードを考慮したビッグデータエンジンを開発・提供する戦略をとっています。お客様のビッグデータのユースケースや、ビッグデータ業界を動かす技術について調べるうちに明らかになったのは、多言語パーシステンスと同様に、多言語エンジンが必要であるということです。多言語とはすなわちストレージ、言語、処理、または使用する技術分野において、1つの技術だけではすべての問題を解決できないことを意味します。多言語エンジンであれば、特定のデータ処理タスクに適切な処理エンジンを使用できます。

インフォマティカは23年もの間、データ統合業界をリードしてきました。当社はオープンソース技術に基づく長年の革新的技術を利用して、スケーラビリティ、パフォーマンス、柔軟性の高いビッグデータプラットフォームを提供し、データの統合、管理、セキュリティに関する実際的な要望に対応しています。

Hadoop 2.0を使用すれば、YARNで複数の複雑な分散アプリケーションをマルチテナントHadoopプラットフォームで実行できます。Informatica Big Data Management Version 10には、当社の新しいビッグデータエンジンである「Blaze」が搭載されています。 

Informatica Blaze

BlazeはYARNに統合されたインフォマティカ独自のデータ処理エンジンであり、データのパイプライン、ジョブのパーティション化、ジョブのリカバリ、スケーラビリティにインテリジェントに対応します。また、インフォマティカのクラスタ対応データ統合技術を利用して、高パフォーマンスでスケーラブルなデータ処理を実現できるように最適化されています。

複数の処理モデルをサポートするHadoop上でカスタムアプリケーションフレームワークを構築することが可能なYARNによってインフォマティカのデータ変換エンジンをHadoopとネイティブに統合できました。Informatica Blazeはメモリベースのデータ交換フレームワークを使用して構築されています。このフレームワークは、MapReduce、Hive、Sparkに依存せずにYARNでネイティブに動作し、各処理エンジンの機能的なギャップを解消します。Informatica BlazeにはインフォマティカのBig Data Managementソリューションが実装されており、Hadoopでのデータ処理機能が強化されています。

また、MapReduce、Hive on Tez、Informatica Blaze、Sparkなどの複数の処理パラダイムをサポートしており、最適な処理エンジンで各ワークロードを実行できます。これは、前述の多言語アプローチと似ています。

次の図は、Informatica Big Data ManagementがBlaze独自のビッグデータエンジンやその他のビッグデータエンジンとどのように統合されるかを示したものです。

im1

優れたオープンソース技術であるYARNと23年間のデータ管理の経験を組み合わせたInformatica Blazeの登場により、Hadoopで柔軟かつスケーラブルな高パフォーマンスのデータ処理が可能になり、インフォマティカの複数データ処理フレームワークのサポートがさらに最適化されました。このため、最適化されたビッグデータ統合用エンドツーエンドプラットフォームをお客様に提供できます。また、Blazeにはクラスタ抽象化機能も搭載されています。Informatica BlazeはHadoopプラットフォーム以外でも使用できます。Blazeには、以下の機能が必要です。

  1. リソース管理
  2. 分散ファイルシステム
  3. クラスタ管理

の3つの機能をクラスタが提供していれば、Blazeをそのクラスタ上で実行できます。つまり、Mesosなどのリソースマネージャで動作するようにBlazeを調整することも可能です。

パフォーマンスベンチマーク

当社の新しいBlazeと、SparkおよびMapReduceを比較したパフォーマンスベンチマークの結果をご覧ください。これらのベンチマークは前述の3つの条件に従っており、ハードウェアとソフトウェアの構成もさまざまです。

これらのベンチマークテストでは、標準のTPC-DSクエリを使用し、13ノードのCloudera V5.4.2クラスタ上でInformatica Big Data Management V10.0を実行しました。すべてのノードには、2基のCPU、12個のコア、および64 GBのメモリが搭載されています。TPC-DSは新しい意思決定サポートベンチマークであり、クエリやデータメンテナンスなど、意思決定サポートシステムの汎用性の高い複数の側面をモデル化したものです。

参照:http://www.tpc.org/tpcds/

これらのテストの結果、Informatica Blazeの実行速度はMapReduceより11〜20倍高速であることがわかりました(Sparkと比べても2〜3倍高速でした)。

im2

im3

im4

im5

im6

Blazeの主な利点

  • パフォーマンス:
    • 同時ジョブの実行:Blazeはマルチテナントアーキテクチャです。つまり、複数のジョブが1つのBlazeインスタンスで処理されるということです。このため、リソース使用率とジョブ間の共有が改善されます。100個のマッピングを開始しても、1個のYARNアプリケーションのみが起動されます。
    • リソースの使用率:
      • 高パフォーマンスなC++ネイティブコード:Informatica BlazeはC++ネイティブコードで記述されており、Javaのようなメモリの問題はありません。Sparkは、Javaと同様にJVMで動作するScalaで記述されています。Javaの場合、メモリ内のオブジェクトの保存とデータ使用量の多いアプリケーションのガベージコレクションの調整によって、オーバーヘッドが発生します。たとえば、シンプルな4バイトの文字列が、JVMオブジェクトモデルでは合計で48バイトを超えます。
      • 最適なデータシャッフル:Informatica Blazeでは、最適化されたフォールトトレラントなデータ交換フレームワーク(DEFデーモン)がシャッフルフェーズで使用されます。シャッフルフェーズは、データ統合のユースケースでは非常に一般的なものです。Reduce処理が含まれるユースケースでは、シャッフルフェーズが必要です。Blazeエンジンを使用した場合、DEFデーモンによってメモリとディスク内のデータをシャッフルできます。この場合、リカバリ損失はありません。これは、Hadoopクラスタでのビッグデータ処理においては実現が難しい非常に重要な機能です。Blazeは、メモリシャッフルフェーズでのフォールトトレラントをサポートする唯一のビッグデータエンジンです。これは、Blaze独自の利点および機能です。大規模なHadoopクラスタで使用可能なリソースがある場合、Blazeではシャッフルフェーズがインメモリで発生するため、パフォーマンスが向上します。Sparkではシャッフルがディスク内で発生します。
  • 抽象化レイヤー:BlazeはBig Data Managementの一部であり、Informatica smart executorが適切なユースケースでBlazeを選択します。
  • 機能拡張性:Blazeでは、YARN上でネイティブのInformaticaエンジンが実行されます。このため、高度なデータ統合、データプロファイリング、データ品質、解析、マスキング変換など、あらゆるデータ統合変換を柔軟にサポートできます。
  • ロギングとモニタリング:Informatica Blazeには独自のBlazeコンソールが搭載されています。BlazeコンソールはApache Application TimeLine Server上で動作し、モニタリングとデバッグに使用されます。
  • 動作の一貫性:Informatica Blazeでは、Hadoopモードでもそれ以外のモードでも、一貫性のあるジョブ実行結果が生成されます。

まとめ:

ビッグデータ戦略が成功するかどうかは、ビッグデータの統合、ガバナンス管理、セキュリティ管理を網羅的に提供できる基盤を構築できるかにかかっています。ビッグデータの導入を検討する企業は、ソフトウェアベンダーを徹底的に評価し、(動的なテンプレートによって)生産性と再利用性を最大化できるか、ビッグデータエコシステムに新しいエンジンが登場するたびにコードを書き直さずに最適なパフォーマンスとスケーラビリティを実現できるか(たとえばBlazeやSparkのように、コードジェネレータを使用しなくても抽象化レイヤーによってジョブに最適なエンジンを選択できるなど)、(Informatica Live Data Mapのような)汎用的なデータカタログを提供できるかなどを把握する必要があります。

これらは、ビッグデータ管理ソリューションの評価で考慮する必要がある、重要条件の一部にすぎません。その他の検討条件については、ホワイトペーパー『How Big Data Management Turns Petabytes into Profits(Big Data Managementによって大規模データから利益を生み出す方法)』を参照してください。

インフォマティカには、smart executorによってBig Data Managementのワークロードを最適化できるという強みがあります。この実行ツールを使用すると、コストとユースケースに基づいて最適なエンジンを動的に選択できます。

当社は、優れたオープンソース技術を活用してこれらのプロジェクトに革新性をもたらします。Informatica Big Data ManagementはBlaze、Spark、Tez、MapReduceなどのさまざまなエンジンをサポートしており、データパイプラインの再構築やリファクタリングなしで将来的なエンジンもサポートできます。また、データの品質、管理、セキュリティを実現する機能拡張性と、多言語エコシステムをサポートする抽象化レイヤーも備えています。

※本ページの内容は2015年12月22日更新のUS Blog の抄訳です。

原文: Top Three Reasons Why We Love Informatica Big Data Management

http://blogs.informatica.com/2015/12/22/top-three-reasons-love-informatica-big-data-management/#fbid=I1ZZ125NnMK

著者: Sumeet Agrawal

インフォマティカ社 Big Data Edition製品担当 プリンシパルプロダクトマネージャー

http://blogs.informatica.com/author/skumar/#fbid=I1ZZ125NnMK