Dataflow の新しいパイプライン検証機能でデベロッパーの生産性を向上
Ning Kang
Software Engineer, Google
Efesa Origbo
Product Manager, Google
※この投稿は米国時間 2024 年 6 月 6 日に、Google Cloud blog に投稿されたものの抄訳です。
データ エンジニアの間では、患者のモニタリング、不正の防止、リアルタイムの在庫管理など、さまざまな分析および ML のユースケースに対応するバッチジョブやストリーミング ジョブの開発に Dataflow が広く使用されています。データ エンジニアは、Dataflow の使いやすさ、オブザーバビリティ機能、大規模なスケールを高く評価しています。また、データ エンジニアはデータ パイプライン内で生じる問題のトラブルシューティングと修正に費やす時間を減らしていく必要もあります。このようなニーズは、データ量が急増し、生成 AI が台頭している状況では、いっそう重要になります。
Dataflow を使用してバッチジョブやストリーミング ジョブを構築するデータ エンジニアは、いくつかの課題に直面することがあります。こうした課題の例として次のようなものがあります。
-
Apache Beam コードのユーザーエラーは、ジョブがすでに実行されていても失敗するまで検出されないことがあり、エンジニアリング時間とクラウド リソースが無駄になる。
-
ジョブが失敗して最初にハイライト表示された一連のエラーを修正しても、今後うまくいくことが保証されない。以降、同じジョブを送信すると失敗して新しいエラーがハイライト表示され、ジョブを正常に実行するために修正しなくてはならない可能性がある。
こうした課題を解決するために、Dataflow のパイプライン検証機能の一般提供を開始しました。
バッチジョブやストリーミング ジョブを送信すると、Dataflow のパイプライン検証によって多数のチェックが行われ、ジョブがエラーなしで正常に実行されることを確認できます。検証が完了すると、特定されたエラーのリストと推奨される修正が一括表示されるので、Apache Beam コードのエラーを繰り返し修正するためにこれまで費やしていた時間が削減されます。
![https://storage.googleapis.com/gweb-cloudblog-publish/images/image1_wnP76fJ.max-1500x1500.png](https://storage.googleapis.com/gweb-cloudblog-publish/images/image1_wnP76fJ.max-1500x1500.png)
![https://storage.googleapis.com/gweb-cloudblog-publish/images/image1_wnP76fJ.max-1500x1500.png](https://storage.googleapis.com/gweb-cloudblog-publish/images/image1_wnP76fJ.max-1500x1500.png)
初期の成果
この機能をリリースして以来、パイプライン検証によってさまざまなジョブの問題を特定し、トラブルシューティングに費やす時間を削減できるようになっています。これらの問題の大部分は、Dataflow ジョブの実行に必要な Identity and Access Management(IAM)権限が不足していることが原因です。2 番目に多い問題は、Pub/Sub トピックとサブスクリプションが不足していることです。これには、タイプミスや、誤って削除されたトピックとサブスクリプションが含まれます。
![https://storage.googleapis.com/gweb-cloudblog-publish/images/image2_fbeB1PF.max-1200x1200.png](https://storage.googleapis.com/gweb-cloudblog-publish/images/image2_fbeB1PF.max-1200x1200.png)
![https://storage.googleapis.com/gweb-cloudblog-publish/images/image2_fbeB1PF.max-1200x1200.png](https://storage.googleapis.com/gweb-cloudblog-publish/images/image2_fbeB1PF.max-1200x1200.png)
使ってみる
パイプライン検証は、デフォルトですべての Dataflow バッチジョブとストリーミング ジョブで有効になっています。この機能を無効にするには、enable_preflight_validation サービス オプションを false に設定します。また、既存のストリーミング パイプラインを更新する際は、graph_validate_only サービス オプションを使用して、新しいジョブグラフの検証チェックをトリガーできます。パイプライン検証の詳細については、ドキュメントをご覧ください。