Воздушный поток Oracle Оператор - PullRequest
1 голос
/ 17 января 2020

Я новичок в Airflow, и я пытаюсь выполнить мой первый DAG с помощью оператора Oracle. Однако я получаю сообщение об ошибке:

«Неверный синтаксис», а также «airflow.exceptions: dag_id не найден. Либо dag не существует, либо не удалось выполнить синтаксический анализ»

Я поместил dag в то же место, где присутствовали example_dags (/usr/lib/python2.7/site-packages/airflow/example_dags/my_dag.py), но почему-то он не отображается в пользовательском интерфейсе, поэтому я попытался выполнить, указав ниже команду

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

Но все-таки не повезло. На этот раз я получил Команду не найдено ошибок. Возможно, что-то не так со сценарием. Пожалуйста, предложите

1 Ответ

0 голосов
/ 20 апреля 2020

Вам не хватает "," между аргументом 'oracle_conn_id' и 'sql' в определении 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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...