Dataflow 作业列表

如需查看 Dataflow 作业列表,请前往 Google Cloud 控制台的 Dataflow > 作业页面。

进入“作业”

此时系统将显示 Dataflow 作业及其状态的列表。

Dataflow 作业列表,其中包含处于正在运行、失败和成功状态的作业。
图 1: Google Cloud 控制台中的 Dataflow 作业列表,其中包含处于正在启动失败成功状态的作业。

作业可能具有以下状态:

  • :监控界面尚未从 Dataflow 服务收到状态。
  • 正在运行:作业正在运行。
  • 正在启动...:作业已创建,但系统在启动前需要一些时间进行准备。
  • 已加入队列:一个 FlexRS 作业已加入队列,或者正在启动 Flex 模板作业(这可能需要几分钟时间)。
  • 正在取消…正在取消作业。
  • 已取消:作业已取消。
  • 正在排空…正在排空作业。
  • 已排空:作业已被排空。
  • 正在更新…正在更新作业。
  • 已更新:作业已更新。
  • 成功:作业已成功完成。
  • 失败:作业未能完成。

访问作业可视化工具

如需访问用于监控作业的图表,请在 Dataflow 监控界面中点击作业名称。此时会显示作业详情页面,其中包含以下信息:

  • 作业图:流水线的直观展示
  • 执行详情:用于优化流水线性能的工具
  • 作业指标:关于作业运行情况的指标
  • 费用:关于作业估算费用的指标
  • 自动扩缩:与流处理作业自动扩缩事件相关的指标
  • 作业信息面板:关于流水线的描述性信息
  • 作业日志:Dataflow 服务在作业级层生成的日志
  • 工作器日志:Dataflow 服务在工作器级层生成的日志
  • 诊断:显示沿所选时间轴发生的错误以及关于流水线的可能建议的表格
  • 数据采样:可让您在流水线的每个步骤中观察数据的工具。

作业详情页面中,您可以使用作业图执行详情作业指标费用自动扩缩标签页来切换作业视图。

使用 Google Cloud CLI 列出作业

您还可以使用 Google Cloud CLI 获取 Dataflow 作业列表。

如需列出项目中的 Dataflow 作业,请使用 dataflow jobs list 命令:

gcloud dataflow jobs list

该命令会返回当前作业列表。以下是输出示例:

  ID                                        NAME                                    TYPE   CREATION_TIME        STATE   REGION
  2015-06-03_16_39_22-4020553808241078833   wordcount-janedoe-0603233849            Batch  2015-06-03 16:39:22  Done    us-central1
  2015-06-03_16_38_28-4363652261786938862   wordcount-johndoe-0603233820            Batch  2015-06-03 16:38:28  Done    us-central1
  2015-05-21_16_24_11-17823098268333533078  bigquerytornadoes-johndoe-0521232402    Batch  2015-05-21 16:24:11  Done    europe-west1
  2015-05-21_13_38_06-16409850040969261121  bigquerytornadoes-johndoe-0521203801    Batch  2015-05-21 13:38:06  Done    us-central1
  2015-05-21_13_17_18-18349574013243942260  bigquerytornadoes-johndoe-0521201710    Batch  2015-05-21 13:17:18  Done    europe-west1
  2015-05-21_12_49_37-9791290545307959963   wordcount-johndoe-0521194928            Batch  2015-05-21 12:49:37  Done    us-central1
  2015-05-20_15_54_51-15905022415025455887  wordcount-johndoe-0520225444            Batch  2015-05-20 15:54:51  Failed  us-central1
  2015-05-20_15_47_02-14774624590029708464  wordcount-johndoe-0520224637            Batch  2015-05-20 15:47:02  Done    us-central1

如需显示有关作业的更多信息,请使用 dataflow jobs describe 命令:

gcloud dataflow jobs describe JOB_ID

JOB_ID 替换为作业 ID。此命令的输出类似于以下内容:

createTime: '2015-02-09T19:39:41.140Z'
currentState: JOB_STATE_DONE
currentStateTime: '2015-02-09T19:56:39.510Z'
id: 2015-02-09_11_39_40-15635991037808002875
name: tfidf-bchambers-0209193926
projectId: google.com:clouddfe
type: JOB_TYPE_BATCH

如需将结果的格式设置为 JSON,请使用 --format=json 选项运行以下命令:

gcloud --format=json dataflow jobs describe JOB_ID

从列表中归档(隐藏)Dataflow 作业

归档 Dataflow 作业时,作业将从控制台的 Dataflow 作业页面的作业列表中移除。系统会将该作业移动到已归档作业列表。您只能归档已完成的作业,包括以下状态的作业:

  • JOB_STATE_CANCELLED
  • JOB_STATE_DRAINED
  • JOB_STATE_DONE
  • JOB_STATE_FAILED
  • JOB_STATE_UPDATED

如需详细了解如何验证这些状态,请参阅检测 Dataflow 作业的完成情况

如需了解归档作业时的问题排查信息,请参阅“排查 Dataflow 错误”中的归档作业错误

所有归档作业在保留 30 天后都会被删除。

将作业归档

请按照以下步骤操作,从 Dataflow 作业页面的主作业列表中移除已完成的作业。

控制台

  1. 在 Google Cloud 控制台中,前往 Dataflow 作业页面。

    转到作业

    此时系统将显示 Dataflow 作业及其状态的列表。

  2. 选择一个作业。

  3. 作业详情页面上,点击归档。如果作业尚未完成,则归档选项将不可用。

REST

如需使用 API 归档作业,请使用 projects.locations.jobs.update 方法。

在此请求中,您必须指定更新后的 JobMetadata 对象。在 JobMetadata.userDisplayProperties 对象中,使用键值对 "archived":"true"

除了更新的 JobMetadata 对象之外,您的 API 请求还必须在请求网址中添加 updateMask 查询参数:

https://dataflow.googleapis.com/v1b3/[...]/jobs/JOB_ID/?updateMask=job_metadata.user_display_properties.archived

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:您的项目 ID
  • REGIONDataflow 区域
  • JOB_ID:您的 Dataflow 作业的 ID

HTTP 方法和网址:

PUT https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/REGION/jobs/JOB_ID/?updateMask=job_metadata.user_display_properties.archived

请求 JSON 正文:

{
  "job_metadata": {
    "userDisplayProperties": {
      "archived": "true"
    }
  }
}

如需发送请求,请选择以下方式之一:

curl

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

curl -X PUT \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/REGION/jobs/JOB_ID/?updateMask=job_metadata.user_display_properties.archived"

PowerShell

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method PUT `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/REGION/jobs/JOB_ID/?updateMask=job_metadata.user_display_properties.archived" | Select-Object -Expand Content

您应该收到类似以下内容的 JSON 响应:

{
  "id": "JOB_ID",
  "projectId": "PROJECT_ID",
  "currentState": "JOB_STATE_DONE",
  "currentStateTime": "2025-05-20T20:54:41.651442Z",
  "createTime": "2025-05-20T20:51:06.031248Z",
  "jobMetadata": {
    "userDisplayProperties": {
      "archived": "true"
    }
  },
  "startTime": "2025-05-20T20:51:06.031248Z"
}

查看和恢复已归档的作业

请按照以下步骤操作,查看已归档的作业或将已归档的作业恢复到 Dataflow 作业页面上的主作业列表。

控制台

  1. 在 Google Cloud 控制台中,前往 Dataflow 作业页面。

    转到作业

  2. 点击已归档切换开关。此时将显示已归档的 Dataflow 作业列表。

  3. 选择一个作业。

  4. 如需将作业恢复到 Dataflow 作业页面上的主作业列表,请在作业详情页面上点击恢复

REST

如需使用 API 恢复已归档的作业,请使用 projects.locations.jobs.update 方法。

在此请求中,您必须指定更新后的 JobMetadata 对象。在 JobMetadata.userDisplayProperties 对象中,使用键值对 "archived":"false"

除了更新的 JobMetadata 对象之外,您的 API 请求还必须在请求网址中添加 updateMask 查询参数:

https://dataflow.googleapis.com/v1b3/[...]/jobs/JOB_ID/?updateMask=job_metadata.user_display_properties.archived

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:您的项目 ID
  • REGIONDataflow 区域
  • JOB_ID:您的 Dataflow 作业的 ID

HTTP 方法和网址:

PUT https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/REGION/jobs/JOB_ID/?updateMask=job_metadata.user_display_properties.archived

请求 JSON 正文:

{
  "job_metadata": {
    "userDisplayProperties": {
      "archived": "false"
    }
  }
}

如需发送请求,请选择以下方式之一:

curl

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

curl -X PUT \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/REGION/jobs/JOB_ID/?updateMask=job_metadata.user_display_properties.archived"

PowerShell

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method PUT `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/REGION/jobs/JOB_ID/?updateMask=job_metadata.user_display_properties.archived" | Select-Object -Expand Content

您应该收到类似以下内容的 JSON 响应:

{
  "id": "JOB_ID",
  "projectId": "PROJECT_ID",
  "currentState": "JOB_STATE_DONE",
  "currentStateTime": "2025-05-20T20:54:41.651442Z",
  "createTime": "2025-05-20T20:51:06.031248Z",
  "jobMetadata": {
    "userDisplayProperties": {
      "archived": "false"
    }
  },
  "startTime": "2025-05-20T20:51:06.031248Z"
}