Skip to main content

jobs

Creates, updates, deletes, gets or lists a jobs resource.

Overview

Namejobs
TypeResource
Idgoogle.dataflow.jobs

Fields

NameDatatypeDescription
idstringThe unique ID of this job. This field is set by the Dataflow service when the job is created, and is immutable for the life of the job.
namestringOptional. The user-specified Dataflow job name. Only one active job with a given name can exist in a project within one region at any given time. Jobs in different regions can have the same name. If a caller attempts to create a job with the same name as an active job that already exists, the attempt returns the existing job. The name must match the regular expression [a-z]([-a-z0-9]{0,1022}[a-z0-9])?
clientRequestIdstringThe client's unique identifier of the job, re-used across retried attempts. If this field is set, the service will ensure its uniqueness. The request to create a job will fail if the service has knowledge of a previously submitted job with the same client's ID and job name. The caller may use this field to ensure idempotence of job creation across retried attempts to create a job. By default, the field is empty and, in that case, the service ignores it.
createTimestringThe timestamp when the job was initially created. Immutable and set by the Cloud Dataflow service.
createdFromSnapshotIdstringIf this is specified, the job's initial state is populated from the given snapshot.
currentStatestringThe current state of the job. Jobs are created in the JOB_STATE_STOPPED state unless otherwise specified. A job in the JOB_STATE_RUNNING state may asynchronously enter a terminal state. After a job has reached a terminal state, no further state updates may be made. This field might be mutated by the Dataflow service; callers cannot mutate it.
currentStateTimestringThe timestamp associated with the current state.
environmentobjectDescribes the environment in which a Dataflow Job runs.
executionInfoobjectAdditional information about how a Cloud Dataflow job will be executed that isn't contained in the submitted job.
jobMetadataobjectMetadata available primarily for filtering jobs. Will be included in the ListJob response and Job SUMMARY view.
labelsobjectUser-defined labels for this job. The labels map can contain no more than 64 entries. Entries of the labels map are UTF8 strings that comply with the following restrictions: Keys must conform to regexp: \p{Ll}\p{Lo}{0,62} Values must conform to regexp: [\p{Ll}\p{Lo}\p{N}_-]{0,63} * Both keys and values are additionally constrained to be <= 128 bytes in size.
locationstringOptional. The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains this job.
pipelineDescriptionobjectA descriptive representation of submitted pipeline as well as the executed form. This data is provided by the Dataflow service for ease of visualizing the pipeline and interpreting Dataflow provided metrics.
projectIdstringThe ID of the Google Cloud project that the job belongs to.
replaceJobIdstringIf this job is an update of an existing job, this field is the job ID of the job it replaced. When sending a CreateJobRequest, you can update a job by specifying it here. The job named here is stopped, and its intermediate state is transferred to this job.
replacedByJobIdstringIf another job is an update of this job (and thus, this job is in JOB_STATE_UPDATED), this field contains the ID of that job.
requestedStatestringThe job's requested state. Applies to UpdateJob requests. Set requested_state with UpdateJob requests to switch between the states JOB_STATE_STOPPED and JOB_STATE_RUNNING. You can also use UpdateJob requests to change a job's state from JOB_STATE_RUNNING to JOB_STATE_CANCELLED, JOB_STATE_DONE, or JOB_STATE_DRAINED. These states irrevocably terminate the job if it hasn't already reached a terminal state. This field has no effect on CreateJob requests.
runtimeUpdatableParamsobjectAdditional job parameters that can only be updated during runtime using the projects.jobs.update method. These fields have no effect when specified during job creation.
satisfiesPzibooleanOutput only. Reserved for future use. This field is set only in responses from the server; it is ignored if it is set in any requests.
satisfiesPzsbooleanReserved for future use. This field is set only in responses from the server; it is ignored if it is set in any requests.
serviceResourcesobjectResources used by the Dataflow Service to run the job.
stageStatesarrayThis field may be mutated by the Cloud Dataflow service; callers cannot mutate it.
startTimestringThe timestamp when the job was started (transitioned to JOB_STATE_PENDING). Flexible resource scheduling jobs are started with some delay after job creation, so start_time is unset before start and is updated when the job is started by the Cloud Dataflow service. For other jobs, start_time always equals to create_time and is immutable and set by the Cloud Dataflow service.
stepsarrayExactly one of step or steps_location should be specified. The top-level steps that constitute the entire job. Only retrieved with JOB_VIEW_ALL.
stepsLocationstringThe Cloud Storage location where the steps are stored.
tempFilesarrayA set of files the system should be aware of that are used for temporary storage. These temporary files will be removed on job completion. No duplicates are allowed. No file patterns are supported. The supported files are: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
transformNameMappingobjectOptional. The map of transform name prefixes of the job to be replaced to the corresponding name prefixes of the new job.
typestringOptional. The type of Dataflow job.

Methods

NameAccessible byRequired ParamsDescription
projects_jobs_getSELECTjobId, projectIdGets the state of the specified Cloud Dataflow job. To get the state of a job, we recommend using projects.locations.jobs.get with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using projects.jobs.get is not recommended, as you can only get the state of jobs that are running in us-central1.
projects_jobs_listSELECTprojectIdList the jobs of a project. To list the jobs of a project in a region, we recommend using projects.locations.jobs.list with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). To list the all jobs across all regions, use projects.jobs.aggregated. Using projects.jobs.list is not recommended, because you can only get the list of jobs that are running in us-central1. projects.locations.jobs.list and projects.jobs.list support filtering the list of jobs by name. Filtering by name isn't supported by projects.jobs.aggregated.
projects_locations_jobs_getSELECTjobId, location, projectIdGets the state of the specified Cloud Dataflow job. To get the state of a job, we recommend using projects.locations.jobs.get with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using projects.jobs.get is not recommended, as you can only get the state of jobs that are running in us-central1.
projects_locations_jobs_listSELECTlocation, projectIdList the jobs of a project. To list the jobs of a project in a region, we recommend using projects.locations.jobs.list with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). To list the all jobs across all regions, use projects.jobs.aggregated. Using projects.jobs.list is not recommended, because you can only get the list of jobs that are running in us-central1. projects.locations.jobs.list and projects.jobs.list support filtering the list of jobs by name. Filtering by name isn't supported by projects.jobs.aggregated.
projects_jobs_createINSERTprojectIdCreates a Cloud Dataflow job. To create a job, we recommend using projects.locations.jobs.create with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using projects.jobs.create is not recommended, as your job will always start in us-central1. Do not enter confidential information when you supply string values using the API.
projects_locations_jobs_createINSERTlocation, projectIdCreates a Cloud Dataflow job. To create a job, we recommend using projects.locations.jobs.create with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using projects.jobs.create is not recommended, as your job will always start in us-central1. Do not enter confidential information when you supply string values using the API.
projects_jobs_updateREPLACEjobId, projectIdUpdates the state of an existing Cloud Dataflow job. To update the state of an existing job, we recommend using projects.locations.jobs.update with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using projects.jobs.update is not recommended, as you can only update the state of jobs that are running in us-central1.
projects_locations_jobs_updateREPLACEjobId, location, projectIdUpdates the state of an existing Cloud Dataflow job. To update the state of an existing job, we recommend using projects.locations.jobs.update with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using projects.jobs.update is not recommended, as you can only update the state of jobs that are running in us-central1.
projects_jobs_aggregatedEXECprojectIdList the jobs of a project across all regions. Note: This method doesn't support filtering the list of jobs by name.
projects_jobs_snapshotEXECjobId, projectIdSnapshot the state of a streaming job.
projects_locations_jobs_snapshotEXECjobId, location, projectIdSnapshot the state of a streaming job.

SELECT examples

List the jobs of a project. To list the jobs of a project in a region, we recommend using projects.locations.jobs.list with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). To list the all jobs across all regions, use projects.jobs.aggregated. Using projects.jobs.list is not recommended, because you can only get the list of jobs that are running in us-central1. projects.locations.jobs.list and projects.jobs.list support filtering the list of jobs by name. Filtering by name isn't supported by projects.jobs.aggregated.

SELECT
id,
name,
clientRequestId,
createTime,
createdFromSnapshotId,
currentState,
currentStateTime,
environment,
executionInfo,
jobMetadata,
labels,
location,
pipelineDescription,
projectId,
replaceJobId,
replacedByJobId,
requestedState,
runtimeUpdatableParams,
satisfiesPzi,
satisfiesPzs,
serviceResources,
stageStates,
startTime,
steps,
stepsLocation,
tempFiles,
transformNameMapping,
type
FROM google.dataflow.jobs
WHERE projectId = '{{ projectId }}';

INSERT example

Use the following StackQL query and manifest file to create a new jobs resource.

/*+ create */
INSERT INTO google.dataflow.jobs (
projectId,
projectId,
name,
type,
environment,
steps,
stepsLocation,
currentState,
currentStateTime,
requestedState,
executionInfo,
replaceJobId,
transformNameMapping,
clientRequestId,
replacedByJobId,
tempFiles,
labels,
location,
pipelineDescription,
stageStates,
jobMetadata,
startTime,
createdFromSnapshotId,
satisfiesPzs,
runtimeUpdatableParams
)
SELECT
'{{ projectId }}',
'{{ projectId }}',
'{{ name }}',
'{{ type }}',
'{{ environment }}',
'{{ steps }}',
'{{ stepsLocation }}',
'{{ currentState }}',
'{{ currentStateTime }}',
'{{ requestedState }}',
'{{ executionInfo }}',
'{{ replaceJobId }}',
'{{ transformNameMapping }}',
'{{ clientRequestId }}',
'{{ replacedByJobId }}',
'{{ tempFiles }}',
'{{ labels }}',
'{{ location }}',
'{{ pipelineDescription }}',
'{{ stageStates }}',
'{{ jobMetadata }}',
'{{ startTime }}',
'{{ createdFromSnapshotId }}',
{{ satisfiesPzs }},
'{{ runtimeUpdatableParams }}'
;

REPLACE example

Replaces all fields in the specified jobs resource.

/*+ update */
REPLACE google.dataflow.jobs
SET
projectId = '{{ projectId }}',
name = '{{ name }}',
type = '{{ type }}',
environment = '{{ environment }}',
steps = '{{ steps }}',
stepsLocation = '{{ stepsLocation }}',
currentState = '{{ currentState }}',
currentStateTime = '{{ currentStateTime }}',
requestedState = '{{ requestedState }}',
executionInfo = '{{ executionInfo }}',
replaceJobId = '{{ replaceJobId }}',
transformNameMapping = '{{ transformNameMapping }}',
clientRequestId = '{{ clientRequestId }}',
replacedByJobId = '{{ replacedByJobId }}',
tempFiles = '{{ tempFiles }}',
labels = '{{ labels }}',
location = '{{ location }}',
pipelineDescription = '{{ pipelineDescription }}',
stageStates = '{{ stageStates }}',
jobMetadata = '{{ jobMetadata }}',
startTime = '{{ startTime }}',
createdFromSnapshotId = '{{ createdFromSnapshotId }}',
satisfiesPzs = true|false,
runtimeUpdatableParams = '{{ runtimeUpdatableParams }}'
WHERE
jobId = '{{ jobId }}'
AND projectId = '{{ projectId }}';