すべてのプロダクト
Search
ドキュメントセンター

Data Management:DMSLockFreeSqlOperator

最終更新日:May 12, 2026

このトピックでは、DMSLockFreeSqlOperator の設定パラメーターについて説明します。

機能

このオペレーターは、DMS のチャンク DML サービスを使用して、大規模なロックフリー DML 操作を実行します。長時間にわたるテーブルロックを防ぐためにステートメントを小さなバッチに分割するため、大規模テーブルに対する UPDATE または DELETE ステートメントに最適です。

パラメーター

説明

sqlinstance、および database パラメーターは、Jinja テンプレートをサポートしています。

パラメーター

タイプ

必須

説明

sql

文字列

はい

実行する DML ステートメント (UPDATE または DELETE) です。

instance

文字列

はい

DMS で管理されるデータベースインスタンスの接続名 (DBLink) です。

database

文字列

はい

データベースの名前です。

説明

MySQL インスタンスの場合は、my_database のようにデータベース名のみを指定します。PostgreSQL インスタンスの場合は、database_name.schema_name 形式を使用して my_database.public のように指定します。

callback

関数

いいえ

実行結果を処理するためのコールバック関数です。

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 オペレーターは、タスクのキャンセルや自動リトライなどの共通機能をサポートしています。詳細については、「Airflow DMS Operator」をご参照ください。