可以使用Airflow的Variable功能来存储和调用连接参数,并在DAG中使用。以下是一个示例:
from airflow import DAG
from airflow.models import Variable
from airflow.operators.mysql_operator import MySqlOperator
# 获取连接参数
USERNAME = Variable.get("mysql_username")
PASSWORD = Variable.get("mysql_password")
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2021, 6, 1),
'email': ['airflow@example.com'],
'email_on_failure': False,
'email_on_retry': False,
'retries': 1,
'retry_delay': timedelta(minutes=5),
}
dag = DAG('mysql_example', default_args=default_args,
schedule_interval=timedelta(days=1))
# 使用连接参数创建MySQLOperator
query = 'SELECT COUNT(*) FROM test_table'
mysql_task = MySqlOperator(
task_id='mysql_task',
mysql_conn_id='mysql_default',
sql=query,
dag=dag
)
mysql_task
在此示例中,我们使用Airflow Variable功能获取MySQL连接的用户名和密码,并将其存储在变量中。然后,在DAG定义中,我们使用这些变量来创建MySQLOperator,该Operator将使用特定的用户名和密码进行连接。这允许我们轻松地调整连接参数,并将其用于多个DAG中。