«{{ds}}» не увеличивается - PullRequest
       28

«{{ds}}» не увеличивается

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

по какой-то причине макрос '{{ds}}' не увеличивает дату выполнения, но он не применяется, но по какой-то причине я попытался очистить новый идентификатор dag и до сих пор не помогает. Есть идеи? введите описание изображения здесь

from airflow import DAG
from datetime import datetime,timedelta
from airflow.operators.postgres_operator import PostgresOperator
from airflow.sensors.external_task_sensor import ExternalTaskSensor
import sys
sys.path.insert(0, '/home/ubuntu/airflow/dags/datarona/')
from datarona_query import queries

args = {
    'owner': 'airflow',
    'start_date':  datetime(2020,4,15),
}

dag = DAG('datarona_tester', description='calculate datarona tables',
          schedule_interval='30 0 * * *',
          default_args=args,
          max_active_runs=1
                 )

#check_cross_dag_dependency = ExternalTaskSensor(task_id='wait_wordpress_succededs',external_dag_id='wordpress',external_task_id='all_tasks_succeded',dag=dag)
next_ds_converter = lambda x,y: (y + timedelta(days=1)) if x==y else (y)
first_operator = PostgresOperator(task_id='opportunities',dag=dag,sql=queries['oppportunities'].replace('next_dt',next_ds_converter('{{ ds }}','{{ next_ds }}')).replace('current_dt','{{ ds }}'),postgres_conn_id='redshift_default')


first_operator
#check_cross_dag_dependency >> first_operator

1 Ответ

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

несколько замечаний:

  • ExternalTaskSensor должен быть указан либо execute_delta, либо execute_date_fn, в противном случае он не будет ссылаться на указанный запуск задачи c. Упомянуто в документации здесь
  • Вы установили дату начала на 2020-04-15, а расписание - на ежедневную 00:30. На скриншоте вы отметили 3-й запуск, и эта дата выполнения точно соответствует конфигурации (первый запуск 04-15, второй запуск 04-16 и третий запуск 04-17)
  • ds и next_ds can ' быть похожим: next_ds = ds + расписание, см. здесь
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...