本文为您介绍DMSLockFreeSqlOperator的配置信息。
功能说明
通过DMS分块DML(Chunk DML)服务执行无锁大批量DML操作,适用于大表UPDATE或DELETE场景。该Operator将大批量DML拆分为多个小批次执行,避免长时间锁表。
参数说明
说明
参数sql、instance、database可以使用Jinja模板。
|
参数 |
类型 |
是否必填 |
说明 |
|
sql |
string |
是 |
需要执行的DML语句(UPDATE或DELETE)。 |
|
instance |
string |
是 |
DMS管理的数据库实例的连接(DBLink)名称。 |
|
database |
string |
是 |
数据库名称。 说明
MySQL实例填写数据库名即可(如 |
|
callback |
function |
否 |
用于处理执行结果的回调函数。 |
|
polling_interval |
int |
否 |
刷新执行结果的间隔时间。单位为秒,默认值为10。设置为0或负数时,任务仅提交不等待结果。状态查询内置重试机制。 |
示例
说明
task_id和dag是Airflow的特定参数,详情请参见Airflow官方文档。
from airflow import DAG
from airflow.providers.alibaba_dms.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。
该文章对您有帮助吗?