全部产品
Search
文档中心

数据管理 DMS:DMSLockFreeSqlOperator

更新时间:May 11, 2026

本文为您介绍DMSLockFreeSqlOperator的配置信息。

功能说明

通过DMS分块DML(Chunk DML)服务执行无锁大批量DML操作,适用于大表UPDATE或DELETE场景。该Operator将大批量DML拆分为多个小批次执行,避免长时间锁表。

参数说明

说明

参数sqlinstancedatabase可以使用Jinja模板

参数

类型

是否必填

说明

sql

string

需要执行的DML语句(UPDATE或DELETE)。

instance

string

DMS管理的数据库实例的连接(DBLink)名称。

database

string

数据库名称。

说明

MySQL实例填写数据库名即可(如my_database),PostgreSQL实例需要填写数据库名.Schema名的格式(如my_database.public)。

callback

function

用于处理执行结果的回调函数。

polling_interval

int

刷新执行结果的间隔时间。单位为秒,默认值为10。设置为0或负数时,任务仅提交不等待结果。状态查询内置重试机制。

示例

说明

task_iddag是Airflow的特定参数,详情请参见Airflow官方文档

from airflow import DAG
from airflow.providers.alibabadms.cloud.operators.dms_lock_free_sql import DMSLockFreeSqlOperator

with DAG(
    "dms_lock_free_sql_example",
) as dag:

    lock_free_task = DMSLockFreeSqlOperator(
        task_id="batch_update",
        instance="my_mysql_instance",
        database="my_database",
        sql="UPDATE orders SET status = 'archived' WHERE created_at < '{{ macros.ds_add(ds, -90) }}';",
        polling_interval=30,
        dag=dag,
    )
说明

所有DMS Airflow Operator均支持任务取消和自动重试等通用特性,详情请参见Airflow DMS Operator