Dataproc vs. Dataflow vs. Dataprep: 何が違うのでしょうか?

現代では、"Data "という言葉には複数の意味があり、その抽出や解釈の仕方も様々です。このため、Google Cloud Platform(GCP)には、データ処理とウェアハウスの分野で3つの主要な製品があります。Dataproc、Dataflow、Dataprepは、さまざまなニーズに対応した大量のETLソリューションを顧客に提供しています。

Dataproc、Dataflow、Dataprepは、クラウド上のデータ処理ツールの新時代の3つの異なる部分です。これらは別々のタスクを実行しますが、互いに関連しています。

DataprocはGoogle Cloudの製品で、SparkやHadoop向けのData Science/MLサービスです。これに対し、Dataflowはデータのバッチ処理とストリーム処理を踏襲しています。データ処理のための新しいパイプラインを作成し、リソースはオンデマンドで生成または削除されます。一方、DataprepはUI駆動で、オンデマンドでスケールし、完全に自動化されています。

このDataproc、Dataflow、Dataprepの比較ブログでは、これら3つのデータ処理ツールが互いにどのように異なるかをお伝えします。

Dataproc vs. Dataflow vs. Dataprep: どっちが人気?

上記のGoogle Trendsのスクリーンショットから、DataflowがDataprocやDataprepよりも顧客の嗜好を大きくリードしていることが確認されます。

Dataprocとは?その特徴

2004年にGoogleがMapReduceの研究論文を発表したのが始まりです。それ以来、Hadoopはビッグデータの世界で重要な役割を果たすようになりました。

2014年になると、ApacheはオープンソースでクラスタコンピューティングフレームワークであるSparkをリリースしました。
Sparkは、データ並列化でクラスタ群全体で作業するための堅牢なモジュールを備えています。まもなく、Apache Sparkは人気を博し、Hadoopの代替とみなされるようになりました。

多くの企業がSparkとHadoopを並行して使い始めましたが、その結果、オーバーヘッドが発生し、構成が混乱しました。その結果、複雑でコストがかかることが判明しました。

ビッグデータで特定のクラスタを使いたくなかったとしても、そのための費用が必要になる。GCPによれば、Spark/Hadoopのデプロイメント全体をフルマネージドサービスに移行することが可能です。機械的にクラスタを作成し、Dataflowでクラスタを管理します。

レポートシステムも組み込まれていますし、何よりオンデマンドでクラスタの停止や削除も可能です。

特徴 :

  • 既存のMapReduceでは、毎日膨大な量のデータをオーバーヘッドの心配なく運用することができます。
  • 内蔵の監視システムにより、クラスタデータをアプリケーションに転送することができます。システムから迅速なレポートを得ることができ、また、GoogleのBigQueryにデータを保存する機能も備えています。
  • Spark(Spark SQL、PySpark、Spark shell)を使用して、ブロブストレージに保存された小さなクラスタを必要なときに素早く起動し、削除することができます。
  • Spark Machine Learning LibrariesとData Scienceで、分類アルゴリズムをカスタマイズして実行します。

データフローとは?その特徴

データを最適化する際に、ETLのような主要なデータ処理技術は省かれます。Googleによると、Dataflowは、データのバッチ処理とストリーム処理を管理・運用できる。

Dataflowの主な目的は、ビッグデータを簡素化することです。プログラミングと実行のフレームワークを統合し、並列化を実現する。Dataflowでは、クラスタデータがアイドル状態になっていることはありません。その代わり、クラスタは継続的に監視され、(使用中のアルゴリズムに従って)リモデリングされます。

Dataflowでは、内蔵されたすべての機能でApache Beamタスクが可能です。また、他のツールでは低速になりがちなGoogle Cloud Platform上で実行することができます。

特徴 :

  • ETL(抽出、変換、ロード)データを複数のデータウェアハウスに同時に投入する。
  • Dataflowは、大量の並列化タスクを処理するためのMapReduceの代替と考えられています。
  • 膨大な量のデータをデータサイエンスの手法で加工し、研究や予測に役立てる。ゲノム、気象、金融データなど。

Dataprepとは?その特徴

Dataprepは、データの可視化不足、冗長なデータ、処理の遅さという3大問題を解決するために作られました。Dataprepは、ファイルをCSV、JSON、またはグラフィカルな表形式に変換することで、ユーザーがデータを視覚的に探索できるようにします。

Dataprepは、TBサイズのクラスタやデータセットを容易に扱うことができます。Dataprepは、BigQueryなどでさらに利用するためにデータを加工する媒体としてのみ使用されます。

データの利用規模が大きくなると、セキュリティに問題が生じることがあります。そこでGoogle Cloudは、Dataprepに独自のIdentity and Access Managementを提供しています。

特徴 :

  • MLやデータサイエンスの力を借りて、冗長なデータを取り除き、データセットを準備することができる。
  • 生データをグラフや表などの視覚的な表現に変換できます。
  • データセットに触れる機会を減らすことで、安全性を保つことができるのです。

Dataproc、Dataflow、Dataprepの違いについて

Dataprocはクラスタへの手動プロビジョニングをサポートし、Dataflowはクラスタへの自動プロビジョニングをサポートします。Dataprepは、将来の使用のためにデータを準備し、きれいにするのに役立ちます。

システムがHadoopに依存している場合は、Dataprocを選択するのが賢明です。Dataprocは、Hadoopの拡張サービスとして作られたものです。

ハンズオンのDev-opsアプローチを好むのであれば、Dataprocを選ぶとよいでしょう。一方、サーバーレスアプローチを好むのであれば、Datflowを選択します。一方、DataprepはUIドリブンです。

すでに以前から見てきたように、多くの人がDataprocやDataprepよりもDataflowを好んでいます。G2のユーザーレビューによると、DataprocはDatflowに比べて使いやすいという意見が多いようです。一方、Dataprepはデータ処理ツールとしてしか捉えられていない。

HadoopやSparkとの連携機能によるリアルタイムなデータ収集は、Dataprocの方が顕著です。データレイク、データ収集、クリーニング、クラウド、ワークロード処理については、データフローが高く評価されている。ビジュアル分析、データプリの助けを借りてのデータ加工は、そのプラスポイントとして見られています。

ポータビリティの面では、データフローはプログラミングと実行モデルを融合しています。このように、データの並列化を実現し、DataprocやDataprepよりも移植性が高い。

Dataproc、Dataflow、Dataprepの共通点

Dataproc、Dataflow、Dataprepを比較しながら、いくつかの共通点があることを紹介します:

  • この3つがGoogle Cloudの製品であることは自明である。
  • つまり、新規のお客様には、試用開始から90日間にDataproc、Dataflow、Dataprepのいずれかに300ドルの無料クレジットを提供します。
  • 3製品ともサポートは同レベルです。
  • いずれもビッグデータの処理・配信に分類される。

Dataproc、Dataflow、Dataprepの表形式比較。

まとめ

今回のブログでは、GCP Dataproc、Dataflow、Dataprepを区別しました。いずれも、データ処理、クリーニング、ETL、配信において同等です。

例えば、Hadoop/Apacheのサービスに依存している場合は、Dataprocを選択する必要があることは明らかです。

また、HadoopやApacheに依存せず、ビッグデータ処理を手動で行いたい場合も、Dataprocを選択することができます。

しかし、Googleのプレミアムサービスであるクラウドデータ処理・配信を利用したいが、同時に細かな点には手を出したくないという人は、Dataflowを選ぶとよいでしょう。

データの異常や冗長性を見つけたいだけなら、Dataprepを選ぶとよいでしょう。また、他のプレミアムなGoogle Cloud製品とも統合されています。

これら3つのGoogle Cloud製品のメリットを享受するためには、自分自身のニーズを理解する必要があります。いずれも特定の要件を満たすものであり、あらゆる規模の企業にとって使いやすいものです。