Updated on 2025-12-19 GMT+08:00

Updating a SQL Job

Function

This API is used to modify a Flink SQL job.

Authorization

Each account has full permissions to call all APIs, but its IAM users need permission assignments to do so. For specific permission requirements, refer to Permissions Policies and Supported Actions.

URI

  • URI format

    PUT /v1.0/{project_id}/streaming/sql-jobs/{job_id}

  • Parameter description
    Table 1 URI parameters

    Parameter

    Mandatory

    Type

    Description

    project_id

    Yes

    String

    Project ID, which is used for resource isolation. For details about how to obtain a project ID, see Obtaining a Project ID.

    job_id

    Yes

    Long

    Job ID. Refer to Creating a SQL Job to obtain the value.

Request Parameters

Table 2 Request parameters

Parameter

Mandatory

Type

Description

name

No

String

Job name. Length range: 0 to 57 characters.

desc

No

String

Job description. Length range: 0 to 512 characters.

queue_name

No

String

Queue name. The value can contain 0 to 128 characters.

sql_body

No

String

Stream SQL statement, which includes at least the following three parts: source, query, and sink. Length range: 0 to 1024 x 1024 characters.

run_mode

No

String

Job running mode. The options are as follows:

  • shared_cluster: indicates that the job is running on a shared cluster.
  • exclusive_cluster: indicates that the job is running on an exclusive cluster.
  • edge_node: indicates that the job is running on an edge node.

The default value is shared_cluster.

cu_number

No

Integer

Number of CUs selected for a job. The default value is 2.

parallel_number

No

Integer

Number of parallel jobs set by a user. The default value is 1.

checkpoint_enabled

No

Boolean

Whether to enable the automatic job snapshot function. Options:

  • true: Enable this function.
  • false: Do not enable this function.
  • Default value: false.

checkpoint_mode

No

Integer

Snapshot mode. Options:

  • 1: ExactlyOnce, meaning data is consumed only once.
  • 2: AtLeastOnce, meaning data is consumed at least once.

Default value: 1.

checkpoint_interval

No

Integer

Snapshot interval. The unit is second. The default value is 10.

obs_bucket

No

String

OBS bucket where users are authorized to save the snapshot. This parameter is valid only when checkpoint_enabled is set to true.

OBS bucket where users are authorized to save the snapshot. This parameter is valid only when log_enabled is set to true.

log_enabled

No

Boolean

Whether to enable the function of uploading job logs to users' OBS buckets. The default value is false.

smn_topic

No

String

SMN topic. If a job fails, the system will send a message to users subscribed to this SMN topic.

restart_when_exception

No

Boolean

Whether to enable the function of automatically restarting a job upon job exceptions. The default value is false.

idle_state_retention

No

Integer

Expiration time, in seconds. The default value is 3600.

edge_group_ids

No

Array of strings

List of edge computing group IDs. Use commas (,) to separate multiple IDs.

dirty_data_strategy

No

String

Dirty data policy of a job.

  • 2:obsDir: Save. obsDir specifies the path for storing dirty data.
  • 1: Trigger a job exception
  • 0: Ignore

The default value is 0.

udf_jar_url

No

String

Name of the resource package that has been uploaded to the DLI resource management system. The UDF Jar file of the SQL job is specified by this parameter.

For Flink 1.15 or later, you can only select packages from OBS, instead of DLI.

manager_cu_number

No

Integer

Number of CUs in the JobManager selected for a job. The default value is 1.

tm_cus

No

Integer

Number of CUs for each TaskManager. The default value is 1.

tm_slot_num

No

Integer

Number of slots in each TaskManager. The default value is (parallel_number*tm_cus)/(cu_number-manager_cu_number).

operator_config

No

String

Degree of parallelism (DOP) of an operator.

resume_checkpoint

No

Boolean

Whether the abnormal restart is recovered from the checkpoint.

resume_max_num

No

Integer

Maximum number of retry times upon exceptions. The unit is times/hour. Value range: -1 or greater than 0. The default value is -1, indicating that the number of times is unlimited.

static_estimator_config

No

String

Traffic or hit ratio of each operator, which is a string in JSON format. Example:

{"operator_list":[{"id":"0a448493b4782967b150582570326227","rate_factor":0.55},{"id":"6d2677a0ecc3fd8df0b72ec675edf8f4","rate_factor":1},{"id":"ea632d67b7d595e5b851708ae9ad79d6","rate_factor":0.55},{"id":"bc764cd8ddf7a0cff126f51c16239658","output_rate":2000}]}

runtime_config

No

String

Customizes optimization parameters when a Flink job is running.

flink_version

No

String

Flink version.

execution_agency_urn

No

String

Name of the agency authorized to DLI. This parameter is configurable in Flink 1.15.

resource_config_version

No

String

Resource configuration version. The value can be v1 or v2. The default value is v1.

Compared with the v1 template, the v2 template does not support the setting of the number of CUs. The v2 template supports the setting of Job Manager Memory and Task Manager Memory.

v1: applicable to Flink 1.12 and 1.15.

v2: applicable to Flink 1.15 and 1.17.

You are advised to use the parameter settings of v2.

resource_config

No

Object

Resource configuration of a Flink job. For detailed parameter descriptions, refer to Table 3.

When the resource configuration version is v2, the configuration takes effect; when the resource configuration version is v1, the configuration is invalid.

Table 3 resource_config parameters

Parameter

Mandatory

Type

Description

max_slot

No

integer

Number of parallel tasks that a single TaskManager can support. Each task slot can execute one task in parallel. Increasing task slots enhances the parallel processing capacity of the TaskManager but also increases resource consumption.

The number of task slots is linked to the CPU count of the TaskManager since each CPU can offer one task slot.

By default, a single TM slot is set to 1. The minimum parallelism must not be less than 1.

parallel_number

No

integer

Number of tasks concurrently executed by each operator in a job. The default value is 1.

jobmanager_resource_spec

No

Object

JobManager resource specifications. For details about the parameters, see Table 4.

taskmanager_resource_spec

No

Object

TaskManager resource specifications. For details about the parameters, see Table 5.

Table 4 jobmanager_resource_spec parameters

Parameter

Mandatory

Type

Description

cpu

No

double

Number of CPU cores available for JobManager. The default value is 1.0 CPU core, with a minimum of no less than 0.5 CPU cores.

If the current job is running on a basic edition elastic resource pool (16–64 CUs), it is recommended that the JobManager's CPU value does not exceed 2 to avoid resource scheduling failures during job execution.

memory

No

string

Memory that can be used by JobManager, in MB or GB. The default unit is GB. The default value is 4 GB, and the minimum value is 2 GB.

Table 5 taskmanager_resource_spec parameters

Parameter

Mandatory

Type

Description

cpu

No

double

Number of CPU cores available for TaskManager. The default value is 1.0 CPU core, with a minimum of no less than 0.5 CPU cores.

If the current job is running on a basic edition elastic resource pool (16–64 CUs), it is recommended that the TaskManager's CPU value does not exceed 2 to avoid resource scheduling failures during job execution.

memory

No

string

Memory that can be used by TaskManager, in MB or GB. The default unit is GB. The default value is 4 GB, and the minimum value is 2 GB.

Response Parameters

Table 6 Response parameters

Parameter

Mandatory

Type

Description

is_success

No

String

Whether the request is successfully executed. Value true indicates that the request is successfully executed.

message

No

String

Message content.

job

No

Object

Information about job update. For details, see Table 7.

Table 7 job parameter

Parameter

Mandatory

Type

Description

update_time

No

Long

Job update time, expressed by milliseconds

Example Request

Update an existing SQL job. The updated job is named myjob and runs on testQueue in shared mode.

{
    "name": "myjob",
    "desc": "My first job",
    "queue_name": "testQueue",
    "sql_body": "select * from source_table",
    "run_mode": "shared_cluster",
    "cu_number": 4,
    "parallel_number": 4,
    "checkpoint_enabled": false,
    "checkpoint_mode": "exactly_once",
    "checkpoint_interval": 10,
    "obs_bucket": "",
    "log_enabled": false,
    "smn_topic": "",
    "restart_when_exception": false,
    "idle_state_retention": 3600,
    "edge_group_ids": [
        "62de1e1c-066e-48a8-a79d-f461a31b2ee1",
        "2eb00f85-99f2-4144-bcb7-d39ff47f9002"
    ],
    "dirty_data_strategy": "0",
    "execution_agency_urn": "myAgencyName",
    "udf_jar_url": "group/test.jar"
}

Example Response

{
    "is_success": "true",
    "message": "The job is updated successfully.",
    "job": {
        "update_time": 1578905682534
    }
}

Status Codes

Table 8 describes status codes.

Table 8 Status codes

Status Code

Description

200

The job is updated successfully.

400

The input parameter is invalid.

Error Codes

If an error occurs when this API is called, the system does not return the result similar to the preceding example, but returns an error code and error message. For details, see Error Codes.