无法使用 Java API 获取数据流步骤信息
Unable to get Dataflow steps information using Java API
我正在尝试使用以下代码获取一个活动流作业的steps
和jobMetrics
信息:
val jobMetrics = dataflowClient.projects().jobs().getMetrics(projectId, jobId).execute().getMetrics
val steps = dataflowClient.projects().jobs().get(projectId, jobId).execute().getSteps
但是,即使我能够获得 jobMetrics
信息,这些步骤总是返回 null。
关于我做错了什么的任何指示?
抱歉,我是 Java 文盲,但关于您需要的详细信息,我可以向您指出 Dataflow API 中的哪个端点来获取它们。我的示例是通过使用 curl 向数据流 API 发送 HTTP 请求来完成的。
要使用 Dataflow API 检索 steps
,请使用 projects.jobs.get endpoint and specify what JobView you want. JOB_VIEW_ALL is required to return job.steps。
使用的示例 curl 命令:
curl -X GET -H "Content-Type: application/json" -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) https://dataflow.googleapis.com/v1b3/projects/my-project/locations/us-central1/jobs/2022-01-13_19_11_56-999999999999?view=JOB_VIEW_ALL
带有 steps
的响应片段:
但是如果遵循 Dataflow Java API。您需要构建 GetJobRequest to include setView() with Enum JobView as the parameter. Using code snippet from getJob() documentation:
try (JobsV1Beta3Client jobsV1Beta3Client = JobsV1Beta3Client.create()) {
GetJobRequest request =
GetJobRequest.newBuilder()
.setProjectId("your-project")
.setJobId("jobId101296568")
.setView(JobView.forNumber(2)) // try 2 as value for JOB_VIEW_ALL as per Enum JobView documentation provided above
.setLocation("us-central1")
.build();
Job response = jobsV1Beta3Client.getJob(request);
}
上面的代码片段应该 return Job object where you can try doing getSteps() 看看它是否会 return 一些东西。
我正在尝试使用以下代码获取一个活动流作业的steps
和jobMetrics
信息:
val jobMetrics = dataflowClient.projects().jobs().getMetrics(projectId, jobId).execute().getMetrics
val steps = dataflowClient.projects().jobs().get(projectId, jobId).execute().getSteps
但是,即使我能够获得 jobMetrics
信息,这些步骤总是返回 null。
关于我做错了什么的任何指示?
抱歉,我是 Java 文盲,但关于您需要的详细信息,我可以向您指出 Dataflow API 中的哪个端点来获取它们。我的示例是通过使用 curl 向数据流 API 发送 HTTP 请求来完成的。
要使用 Dataflow API 检索 steps
,请使用 projects.jobs.get endpoint and specify what JobView you want. JOB_VIEW_ALL is required to return job.steps。
使用的示例 curl 命令:
curl -X GET -H "Content-Type: application/json" -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) https://dataflow.googleapis.com/v1b3/projects/my-project/locations/us-central1/jobs/2022-01-13_19_11_56-999999999999?view=JOB_VIEW_ALL
带有 steps
的响应片段:
但是如果遵循 Dataflow Java API。您需要构建 GetJobRequest to include setView() with Enum JobView as the parameter. Using code snippet from getJob() documentation:
try (JobsV1Beta3Client jobsV1Beta3Client = JobsV1Beta3Client.create()) {
GetJobRequest request =
GetJobRequest.newBuilder()
.setProjectId("your-project")
.setJobId("jobId101296568")
.setView(JobView.forNumber(2)) // try 2 as value for JOB_VIEW_ALL as per Enum JobView documentation provided above
.setLocation("us-central1")
.build();
Job response = jobsV1Beta3Client.getJob(request);
}
上面的代码片段应该 return Job object where you can try doing getSteps() 看看它是否会 return 一些东西。