1

A simple dataflow jobなぜもっと

が、私は個々のステップにかかる時間よりもそんなに高いデータフロージョブの経過時間の合計である理由を理解することは本当にできないのです個々のステップで撮影した時間の合計よりも、Googleのデータフローで撮影した合計時間があります。

たとえば、画像内のデータフローの合計経過時間は2分39秒です。個々のステップで費やされる時間はわずか10秒です。セットアップに費やした時間とフェーズを破壊する時間を考慮しても、149秒の差があります。これは多すぎます。

個々のステージのタイミングを読むには他の方法がありますか、それとも他に何か不足していますか?

ありがとうございました

+0

ジョブを実行すると、Dataflowは数分(2-5)のワーカーマシンを割り当て、ジョブを実行するためにそれらを設定します。 – Pablo

答えて

2

私によると、2分39秒は時間通りです。あなたはこの操作をファイルを読んだ後でpardoし、それをbigqueryに書き込んでいます。

この時間計算には多くの要因があります。

  1. 処理する必要のあるデータ量。つまり、あなたのケースでは、私はあなたが多くのデータを処理しているとは思わない。
  2. あなたは何をしているのですか?すなわち、あなたのpardoのステップはわずか3秒であるから、少量のデータpardoから離れても、あまり多くの計算がない。
  3. bigqueryに書き込みます。つまり、あなたのケースでは5秒しかかかりません。

データフローの作成フェーズと破棄フェーズは同じです。あなたの場合は149秒です。あなたの仕事は上記の3つの要素すべてに依存するわずか10秒しかかかりません。

ここで、200万レコードを処理しなければならないと仮定し、各レコードトランスフォームは10秒かかるとします。この場合、単一ノード・データフロー・ロード・ジョブの場合、10秒×200万レコードの時間がはるかに長くなる。

この場合、149秒はすべてのレコード処理0秒* 200万レコードで考慮されるため、ジョブ完了時間の前に立っていませんでした。

これらの情報がタイミングを理解するのに役立つことを願っています。

+0

あなたは、これらの149秒を200万レコードの視点に入れたとき、それが何かを明確に入れていることを知っています。 – Abhishek

関連する問題