menu
arrow_back

Apache Beam と Cloud Dataflow を使用したタイム ウィンドウ データの処理(Java)

Apache Beam と Cloud Dataflow を使用したタイム ウィンドウ データの処理(Java)

1時間 30分 7クレジット

GSP272

Google Cloud セルフペース ラボ

概要

このラボでは、Maven を使用して Java アプリケーションをデプロイし、Cloud Dataflow でデータを処理する方法について学びます。このラボで使用する Java アプリケーションは、タイム ウィンドウ集計を実装して元データを拡張し、一貫性のあるトレーニング データセットとテスト データセットを作成します。作成されたデータセットは、後続のラボで機械学習モデルの改善に使用できます。

使用する基本データセットは、米国運輸統計局のウェブサイトから取得したもので、米国内の国内線フライトに関する履歴情報を提供します。このデータセットは、データ サイエンスの多岐にわたるコンセプトと技術の実証に使用できます。また、Google Cloud Platform のデータ サイエンスGoogle Cloud Platform のデータ サイエンス: 機械学習の両クエストに含まれる、その他すべてのラボで使用します。

タイム ウィンドウ集計データセットを使用すると、一定期間の動作が規則的または半規則的に変化するデータモデルの精度を高めることができます。たとえば、一般にフライトでは、ピーク時にタキシング時間が増加します。また、これまでのラボからわかったように、ここで全体を通じてモデリングの関心事となっている到着遅延時間も、タキシング時間に応じて変動します。航空会社もこれを認識しており、各空港の出発予定時刻の平均タキシング時間を考慮して到着予定時刻を調整しています。タイム ウィンドウ集計データを計算すると、特定のタイム ウィンドウの平均を完全に超過するパラメータ(タキシング時間など)を見つけて、特定のフライトが遅延するかどうかをより正確にモデル化できます。

これらの集計データセットの作成には Apache Beam を使用すると便利です。Apache Beam では、バッチモードで履歴データからトレーニング データセットとテスト データセットを作成した後、同じコードをストリーミング モードで使用して、リアルタイムのストリーミング データで平均を計算できます。これにより、履歴データとストリーミング データの処理に異なる言語やプラットフォームを使用する場合に発生するトレーニング / サービング スキューの問題を軽減できます。

Cloud Dataflow はフルマネージド型のサービスです。Java および Python の API と Apache Beam SDK を使用して、ストリーミング(リアルタイム)モードとバッチ(履歴)モードの両方でデータの変換と拡充が行えます。サーバーレス アーキテクチャにより、非常に大きなバッチ データセットや大量のライブデータ ストリームをシャーディングして並列処理できます。

Google BigQuery は、Google Storage と連携して動作する大規模なデータセットをインタラクティブに分析できる RESTful ウェブサービスです。

目標

  • Maven Apache のプロジェクト オブジェクト モデル ファイルを構成する

  • Java アプリケーションを Apache Beam にデプロイして、トレーニング用とテスト用の集計データファイルを作成する

Join Qwiklabs to read the rest of this lab...and more!

  • Get temporary access to the Google Cloud Console.
  • Over 200 labs from beginner to advanced levels.
  • Bite-sized so you can learn at your own pace.
Join to Start This Lab
スコア

—/20

Check that Cloud Dataflow project called CreateTraining DataSet is running.

ステップを実行

/ 5

Check that the training and test data sets have been written to Cloud Storage

ステップを実行

/ 5

Check that flights.testFlights table exists in BigQuery

ステップを実行

/ 5

Check that flights.trainFlights table exists in BigQuery

ステップを実行

/ 5