皆様、こんにちは!
DX開発事業部 クロスイノベーションセクション スマホグループの楊林です。

最近、3番目のGoogle Cloud資格、Google Cloud Professional Data Engineer(PDE)をようやく取得しました。

資格受験の準備中に、こう感じましたー
Dataflow、Dataproc、Dataplex、Dataprep、Datastream、Dataform、なんかみんな名前が似ていて、機能も少し似てる。
そして練習問題では一緒に出てくることも多くて、区別しにくいなぁ〜〜。

では、これらの違いを少し整理してみましょう。


Dataflow

DataflowはApache Beamをベースにした、データ処理パイプラインを実行する完全マネージドサービスです。ストリーミング処理とバッチ処理の両方に対応できるデータ処理エンジンです。

Dataflowの重要な役割は、データの変換・集計・クレンジングなど、実際に処理を行うことです。体感的には、これらのDataXXXX系ツールの中で、練習問題に最も登場するツールのひとつな気がします。

Dataflowはコーディング主体のツールです。「ローコード」「ノーコード」「技術に詳しくない」といったキーワードが問題に出た場合、基本的に正解にはなりません。

Dataflowには、ストリーミングデータを時間や条件で区切る単位として ウィンドウ があります。主に三種類です:

  • 固定ウィンドウ:時間的に固定で重ならない。固定間隔での定期集計に向く。
  • スライディングウィンドウ:時間的に固定だが重なりがある。過去一定期間のデータを定期的に更新する場合に適する。
  • セッションウィンドウ:イベント駆動で時間が変動する。ユーザー行動分析やセッション集計に適する。

ウィンドウ後に遅れて到着するデータもあります。これらを正しく集計するために、ウォーターマーク という許容時間の概念があります。


Dataprep

Dataprepはデータ準備や品質検証に使うツールです。試験ではDataflowと一緒に出ることが多いです。

Dataprepの特徴は、ローコード/ノーコードでデータ探索・クレンジング・検証ができることです。Dataflowと違い、プログラミングスキルがそれほど必要ない場面に適します。


Dataproc

DataprocはマネージドHadoop/Sparkクラスターサービスです。Apache Hadoop、Spark、Hiveなどのビッグデータツールをクラウド上で簡単に利用できます。

バッチ処理・ETL・ストリーミング処理に適用できますが、サーバーレスではないことに注意してください。サーバーレスのキーワードが出たらDataprocでは正解になりません。


Dataplex

DataplexはCloud Storage、BigQuery、その他のデータソースに分散したデータを統合的に管理・発見・監視・統治するインテリジェントデータファブリックです。

Dataplexに階層の概念があって、階層は Lake / Zone / Asset の3つがあります。
Zoneは機能により区分されます。代表的なのは:

  • raw:未加工データの保管場所で、自動検出対象になる。
  • curated:処理済み・構造化データの保管場所で、自動検出されていない場合はrawに移行するのが良い方法。

Dataplexを利用する際のIAM管理ベストプラクティスは、BigQueryデータセットやCloud Storageバケットの権限を直接管理する代わりに、Dataplexリソース(レイク、ゾーン、アセット)に対して権限を付与することです。


Datastream

Datastreamはデータベース(Cloud SQLなど)からBigQueryへ、変更データキャプチャ(CDC) を利用して低レイテンシかつ低負荷でデータを継続的にレプリケートするサービスです。

データのレプリケーション作成時に役立ちます。


Dataform

Dataformはデータ変換パイプライン(ELT)を開発・テスト・バージョン管理・デプロイ・スケジュールするためのサーバーレスサービスです。

Dataprocと違い、サーバーレスのキーワードに注意しましょう。また、SQLベースなので、SQLに熟練している場合に適します。「技術があまり分からない」場合には向きません。


まとめ

以上は私がPDE試験準備中に整理した内容です。
これからPDE試験に挑戦する方の参考になれば幸いです。