2017-10-12 1 views
3

Ich verwende Java Beam SDK für meinen Datenfluss-Job und com.google.api.services.dataflow.model.Job Klasse gibt Details über einen bestimmten Job. Jedoch bietet es keine Methode/Eigenschaft Datenfluß Schritt Informationen zu erhalten, wie Elemente hinzugefügt, Geschätzte Größe usw.Wie erhält man die Step-Details eines Datenflussjobs mit Java Beam SDK?

enter image description here

Unten ist der Code, den ich mit der Aufgabe, erhalten Informationen,

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

ich bin etwas suchen, wie,

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

Vielen Dank im Voraus.

Antwort

1

Die Klasse SinkMetrics bietet eine bytesWritten() Methode und eine elementsWritten() Methode. Darüber hinaus stellt die SourceMetrics Klasse eine elementsRead() und eine Methode zur Verfügung.

Wenn Sie die Klassen im org.apache.beam.sdk.metrics-Paket verwenden, um diese Metriken und Filter für Schritt abzufragen, sollten Sie in der Lage sein, die zugrunde liegenden Metriken für den Stopp zu erhalten (d. H. Gelesene Elemente).

Ich würde hinzufügen, dass, wenn Sie bereit sind, außerhalb des Beam Java SDK zu schauen, da Sie auf Google Cloud Dataflow laufen, können Sie Google Dataflow API verwenden Insbesondere können Sie projects.jobs.getMetrics verwenden, um die detaillierten Metriken für die Job einschließlich der Anzahl der geschriebenen/gelesenen Elemente. Sie müssen die Metriken analysieren, da es selbst für einen einfachen Job Hunderte von Metriken gibt, aber die zugrunde liegenden Daten, die Sie suchen, sind über diesen API-Aufruf vorhanden (ich habe es gerade getestet).

Verwandte Themen