データ分析基盤を構築する方法はいくつかありますが、Google Cloud™(旧 GCP:Google Cloud Platform)をシステムの一部に採用している企業も、そうでない企業にもおすすめなのが“(Google) Cloud Dataflow(クラウドデータフロー)”というサービスです。Google Cloud 内のサービスの1つであり、データ分析基盤を高速に構築し、簡素化されたパイプライン開発をサポートします。
本稿ではこの Cloud Dataflow の基本と、幅広いユーザーに使われる理由について紹介していきます。
Cloud Dataflow とは?
Cloud Dataflow は大規模なデータ処理を実行するためのクラウドサービスです。昨今ニーズが高まっているビッグデータ分析など、大量かつ多種多様なデータを集約し、高速に処理することの重要性が高まっています。Cloud Dataflow はそうしたニーズを持つ企業にさまざまな機能を提供します。
Cloud Dataflow の特徴はApache Beamで記述されたパイプライン処理を動作させられるプラットフォームであることです。噛み砕いて言えば、Apache Beamを実行するための環境となります。
Apache Beamとは?
Apache Beamはパイプライン処理を実現するためのフレームワークであり、パイプライン処理とはCPUの処理速度向上を目的とした技術です。データの読み込み、事前処理、集計、保存といった一連の処理を行い、大規模なデータを効率良く処理するのに向いています。
Apache Beamを使用することで、ユーザーはパイプラインの環境構築や管理に手間を割く必要性が少なくなします。移植性も高く、Cloud Dataflow の他にApache Spark、Apache Flinkなど他のプラットフォームで動作させることも可能です。
Cloud Dataflowを使用するメリット
Apache Beamを実行する環境は他にもあるものの、Cloud Dataflow を選択する理由とは何か?そこには①動作環境構築が不要、②各種Google Cloud サービスと連携した処理が可能という2つのメリットがあります。
①動作環境構築が不要
Apache Beamによって記述された処理を Cloud Dataflow 上で実行することで、記述されたパイプラインの構成に沿って環境を自動構築した上で、処理を開始してくれます。開発者が特に手を加えなくても実行に必要な動作環境を自動的に構築してくれるので、その分の手間を丸々効率化できます。
さらに、Cloud Dataflow はオートスケーリング機能が搭載されています。ストリーミングデータの量が想像以上に多かったり、負荷がかかるバッチ処理を実行したりした場合などに自動でスケーリング(リソースの拡張)を実行してくれるので、データ分析基盤に必要な環境周りのことに考えをまわす必要がなくなります。
②各種 Google Cloud サービスと連携した処理が可能
Apache Beamでは Google Cloud 各種サービスと連携できるSDK(Software Development Kit:ソフトウェア開発キット)が揃っており、各種サービス間の連携が用意に行えます。
<Apache Beamで用意されているSDK>
- Google BigQuery
- Google Cloud Storage
- Google Cloud Pub/Sub
- Google Cloud Bigtable
- Google Cloud Spanner
たとえば Google Cloud Storage 上にファイルが配置されているのを常に待ち受け解いたり、Google Cloud Pub/Subで処理結果のメッセージを送るようにしたり、さまざまな連携方法があります。アイディア次第でさまざまなシーンに対応できるので、多種多様な業種で使用できるでしょう。
加えて Google Cloud ではAWS(Amazon Web Service)とのAPI(Application Program Interface)も用意されているので、他にもさまざまなデータソースに対応します。
以上のように、Apache Beamを実行するだけで必要な環境構築を自動的に行ってくれること、その後のオートスケーリングに対応していること、そしてさまざまな連携先を持つことが、Cloud Dataflow が多くのユーザーに愛用されている理由です。
<その他 Cloud Dataflow の特長>
動的な作業再調整
作業配分の自動化と最適化により、遅れている作業の優先順位が動的に調整されます。最新状況を追跡したり、入力データを事前に処理したりする必要はありません。
信頼性の高い一貫した処理
データサイズ、クラスタサイズ、処理パターン、パイプラインの複雑さを問わない、一貫性のある高精度のフォールト トレラント機能が組み込まれています。
バッチ処理用の柔軟なリソース スケジューリング料金
深夜ジョブなどをスケジューリングしてフレキシブルな時間設定で処理するために、柔軟なリソース スケジューリングでは、低価格のバッチ処理が提供されます。このようなフレキシブル ジョブはキューに入り、6 時間以内に確実にキューから取り出されて実行されます。
※「Cloud Dataflowページ」より抜粋
Cloud Dataflow の料金
ここまで読まれた方はで、「 Cloud Dataflow の料金はいくらなの?」と考えていることでしょう。どんなに優秀な機能を備えていても料金が高ければ使いたくはありませんよね。以下に、肝心の Google Dataflow の料金をご紹介します。
Cloud Dataflow を実行しますと、Google Compute Engine を使用したワーカーが作成されますので、料金はそのワーカーの起動時間に対して課金されます。料金の計算方法は「確保したCPU数/メモリ量/ディスク使用量+時間」となります。
{ (1CPU料金 × 使用CPU数) + (1GBメモリ料金 × 使用メモリGB) + (1GBストレージ料金 × 使用ストレージGB) } × 時間(h)
東京リージョンを選択した際の料金は以下のように確定します。
Cloud Dataflow ワーカータイプ |
vCPU $/時間 |
メモリ$ GB/時間 |
ストレージ - 標準永続ディスク$ GB/時間 |
ストレージ - SSD 永続ディスク$ GB/時間 |
データ処理量$ GB |
---|---|---|---|---|---|
バッチ |
$0.0728 |
$0.0046241 |
$0.0000702 |
$0.0003874 |
$0.0143 |
ストリーミング |
$0.0897 |
$0.0046241 |
$0.0000702 |
$0.0003874 |
$0.0234 |
料金はリージョンごとに違いますし、同じリージョンでも時期によって異なる場合があるため、料金を算出する際は必ず都度「Cloud Dataflowの料金ページ」を確認してください。
また、電算システムでは、お客様のデータ分析を支援するための各種データ分析サービスをご用意しています。データ収集から実際に分析するための環境構築、データサイエンティストによるデータ分析のご支援まで幅広いサービスラインナップで、お客様のデータ分析業務をご支援します。
ぜひお気軽にご相談ください。
- カテゴリ:
- Google Cloud(GCP)
- キーワード:
- Google Cloud
- Google BigQuery
- クラウドサービス