气流Oracle操作员

时间:2020-01-17 10:37:02

标签: oracle airflow operator-keyword

对于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找不到错误。脚本可能出了点问题。请建议

1 个答案:

答案 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')