データ分析するためには、まず分析するためのデータが必要になります。
分析したいデータがどのシステムにあるのか。メールなどでお客様にいただいたExcelファイルを分析したい場合もあるかと思います。
データは場合によっては、取引先名やデータ受領日などの情報を追加したり、横持ちのデータを縦持ちに変換するなどデータ分析に適したデータに加工が必要で、データ分析を行うまでには、データを集約して蓄積するだけではなく、データ分析に適したデータに加工するなど多くのことが絡んできます。
このデータ分析に適したデータに加工するために、DWH(データウェアハウス)、BIツール、ETLといったツールが必要になります。
本記事では、情報システム部門のコンサルティングやBIツールでのデータの可視化・分析などデータ活用に関する多くの知見のある株式会社KUIXがこれまでの経験をもとにGCP(Google Cloud Platform)が提供するETLサービスである「Dataflow」にフォーカスし、Dataflowの概要や特徴、料金体系などを解説いたします。
Dataflow とは
Dataflowを一言で表すと、GCP(Google Cloud Platform)が提供するサーバーレスでフルマネージドのETLサービスです。
Dataflowは、パイプライン処理と呼ばれるデータを並列処理するオープンソースであるApache Beamで構築されたプラットフォームであり、
バッチ処理(ファイル更新をトリガーとして処理を実行する場合など)とストリーミング(Pub/Subをトリガーとして処理を実行する場合など)の両方に対応しています。
また、Apache Beamの実行環境として利用することもできます。
Apache Beamで作成した処理(ジョブ)を、Dataflowで実行している。というイメージですので、作成したジョブは、Dataflow以外のApache Flink、Apache Sparkなどその他の実行エンジンでも実行することができます。
なお、Dataflowでは、JavaやGo、Pythonでジョブを作成することもでき、よく使われる処理のテンプレートを利用することもできます。
そのため、Dataflowは、BigQueryやCloud StorageなどのGCPサービスを用いてデータ分析する際にデータを一元的に集約して蓄積することはもちろん、データ分析に適したデータに加工することもできるため、
データ分析に欠かせないツール/サービスとなっております。
ETL とは
ETLは、「Extract(抽出)、Transform(変換)、Load(書き出し)」の略で、生産/在庫/販売管理などの基幹システムやCRM(顧客管理システム)などの複数のシステムからデータを抽出、加工し、DWHに蓄積するためのツールです。
混合されるキーワードとして、ELTというツールがあります。
ELTは、「Extract(抽出)、Load(書き出し)、Transform(変換)」の略で、Load(書き出し)とTransform(変換)が逆になっています。
データを抽出、加工し、蓄積するという意味では、同じですが、処理を行う場所が異なり、ETLはETLツール内で一連の処理を行うのに対し、
ELTは、データベース内でデータを抽出し、保存してから加工する。という違いがあります。

Dataflow の特徴
Dataflowの概要を理解できましたでしょうか。
ここでは、以下の主なDataflow特徴3つを解説します。
GCP(Google Cloud Platform)の他サービスと連携ができる
まず1つ目は、GCP(Google Cloud Platform)の他サービスと連携ができることです。
言わずもがなですが、Dataflowは、GCP(Google Cloud Platform)のサービスの1つですので、他のサービスとの連携をすることができます。
なお、実際には、前述の通り、Dataflowは、オープンソースであるApache Beamで構築されたプラットフォームですが、
GCP(Google Cloud Platform)の各サービスと連携するためのSDK(Software Development Kit:ソフトウェア開発キット)を利用することで連携することができます。
Apache Beamで利用可能なSDKは以下の通りです。
・BigQuery
・Cloud Storage
・Cloud Bigtable
・Cloud Pub/Sub
・Cloud Spanner
環境構築が不要ですぐに使い始めることができる
2つ目は、環境構築が不要ですぐに使い始めることができることです。
一般的に、データ処理を行うためには、実行するための環境やプログラミングした処理が実際に正しく実行されるか確認する必要がありますが、Dataflow自体は実行するための環境であり、Dataflow上で正しく実行されることを確認することができるため、環境構築不要ですぐに使い始めることができます。
また、Dataflowには、オートスケーリング機能もあり、利用状況に応じてリソースの拡大・縮小を自動で行ってくれます。
定期的な実行状況(利用料金)の確認は必要となりますが、実機サーバーの調達や保守、リソースの拡張などの保守が不要となります。
自動でジョブ実行を最適化してくれる
最後は、自動でジョブ実行を最適化してくれることです。
Dataflowには、スケジュールしたジョブがスケジュールより遅延している場合に、ジョブの優先順位を自動的に判断し、ジョブ実行してくれる機能があるため、システム担当者が都度確認することも不要で業務効率化することができます。
Dataflow の料金体系
Dataflowの料金体系は、ジョブ(データ処理)ごとに秒単位で従量課金される料金体系となります。
また、Dataflow実行時には、ワーカーと呼ばれるGoogle Compute Engineを使用したリソースが必要となり、このワーカーの起動時間に応じて料金が発生し、ワーカーは3つのタイプに分かれており、ワーカーによっても料金が異なります。
以下は、東京リージョンでのDataflowワーカー別の料金です。なお、処理によっては、Cloud Storageなど利用料金が必要となります。
※2023/10/29時点
〇Dataflowワーカータイプ:バッチ
・vCPU(1時間あたり):$0.0728
・メモリ(1GB1時間あたり):$0.0046241
・シャッフル時に処理されたデータ(GB単位):$0.0143
〇Dataflowワーカータイプ:FlexRS
・vCPU(1時間あたり):$0.0437
・メモリ(1GB1時間あたり):$0.0027745
・シャッフル時に処理されたデータ(GB単位):$0.0143
〇Dataflowワーカータイプ:ストリーミング
・vCPU(1時間あたり):$0.0897
・メモリ(1GB1時間あたり):$0.0046241
・シャッフル時に処理されたデータ(GB単位):$0.0234
※Dataflow の料金プランに関する最新情報は公式ドキュメントを参照ください。
Dataflow の料金
https://cloud.google.com/dataflow/pricing?hl=ja
まとめ
GCP(Google Cloud Platform)が提供するETLサービスである「Dataflow」にフォーカスし、Dataflowの概要や特徴、料金体系などを紹介しました。
BigQueryやCloud Storageを利用して、データ分析環境を運用・構築検討中の方で、
「各システムとのデータ連携に課題がある」
「ETLサービスを導入検討中」
といった方は、Dataflowの導入・利用を検討してはいかがでしょうか。
本記事を読んで、BigQuery MLやクラウド上のMLサービスについて興味を持っていただけたのであれば幸いです。
株式会社KUIXではGCPを用いたシステムの開発やコンサルティングを行っています。本格的なGCP環境の構築・導入をご検討される際は、ぜひ一度ご連絡ください!お問い合わせはこちらから

