2017-10-12 15 views
3

データフロージョブにJava Beam SDKを使用しています。com.google.api.services.dataflow.model.Jobクラスは、特定のジョブの詳細を示します。しかし、それは、そのような要素を追加しましたとしてデータフローのステップの情報を取得するために任意の方法/プロパティを提供していない、推定サイズなどの下Java Beam SDKを使用してデータフロージョブのステップの詳細を取得する方法は?

enter image description here

は、私は仕事のを取得するために使用しているコードです。情報、私のようなものを探しています

PipelineResult result = p.run();   
String jobId = ((DataflowPipelineJob) result).getJobId(); 
DataflowClient client = DataflowClient.create(options); 
Job job = client.getJob(jobId); 

job.getSteps("step name").getElementsAdded(); 
job.getSteps("step name").getEstimatedSize(); 

ありがとうございます。

答えて

1

SinkMetricsクラスは、bytesWritten()メソッドとelementsWritten()メソッドを提供します。さらに、SourceMetricsクラスはelementsRead()およびbytesRead()メソッドを提供します。

org.apache.beam.sdk.metricsパッケージのクラスを使用してこれらのメトリックをクエリし、ステップごとにフィルタリングする場合は、その停止に関する基本的なメトリック(つまり、読み込まれた要素)を取得できるはずです。

Google Cloud Dataflowで動作しているため、Beam Java SDKの外を見る場合は、Google Dataflow APIを使用できます。具体的にはprojects.jobs.getMetricsを使用して、詳細なメトリックを取得できます書かれた/読まれた要素の数を含むジョブ。単純なジョブでも何百ものメトリックがあるので、メトリックを解析する必要がありますが、探している基礎データはこのAPI呼び出し(私がテストしたばかりです)にあります。

関連する問題