对于Airflow
来说还很陌生,我正在尝试使用DAG
运算符执行我的第一个Oracle
。但是,出现错误
“无效的语法”以及此“ airflow.exceptions:找不到dag_id。dag不存在或无法解析”。
我已将dag
放在存在example_dags (/usr/lib/python2.7/site-packages/airflow/example_dags/my_dag.py)
的相同位置,但是由于某种原因它没有显示在UI中,所以我尝试通过以下命令执行
airflow run example_sql_dag task_sql 2020-1-17
下面是我的oracle dag的代码:
from datetime import datetime,timedelta
import airflow
from airflow import DAG
from airflow.operators.bash_operator import BashOperator
from airflow.operators.oracle_operator import OracleOperator
default_args = {
'owner': 'Airflow',
'depends_on_past': False,
'start_date': airflow.utils.dates.days_ago(2),
'start_date': datetime(2020,01,17),
'email': ['airflow@example.com'],
'email_on_failure': False,
'email_on_retry': False,
'retries': 0,
'retry_delay': timedelta(minutes=5)
}
with DAG('example_sql_dag',
default_args=default_args,
catchup=False,
schedule_interval='*/10 * * * *'
) as dag:
opr_sql = OracleOperator(task_id='task_sql',
oracle_conn_id='Oracle_schema'
sql= 'insert into table1 (a,b,c)values (1,2,3)',
autocommit ='True')
谢谢!
编辑:我试图通过转到保存文件的位置直接执行python文件,并执行了../ my_dag.py
但是还是没有运气。这次我收到Command找不到错误。脚本可能出了点问题。请建议
答案 0 :(得分:1)
您在DAG定义中的'oracle_conn_id'和'sql'参数之间缺少“,”。 试试:
opr_sql = OracleOperator(task_id='task_sql',
oracle_conn_id='Oracle_schema',
sql= 'insert into table1 (a,b,c)values (1,2,3)',
autocommit ='True')