气流调度问题

时间:2018-07-27 00:48:09

标签: airflow

我上次忘了包含code个示例,因此重新发布。

我在尝试设置Airflow时遇到了一些问题。我一直在尝试通过一个简单的SQL脚本来遵循非常基本的DAG设置。我遇到了三个问题:

  1. 我能够运行一个基本的DAG(我可以在GUI中看到DAG及其在数据库上的运行效果),但是看起来像{{ 1}}不遵守DAG参数。我正在尝试使schedule_interval每小时运行一次,但是无论我做了什么更改,DAG都每天运行,这也反映在我从GUI上看到的情况。

  2. 此外,尽管如果DAG作为计划运行的一部分运行,DAG可以顺利运行其单个任务,但是我在手动执行DAG失败。我不确定为什么会这样。

  3. 在更新DAG DAGstart_date时,我一直在重命名schedule_interval,因为这似乎是推荐的做法。有时这会触发回填dag_id执行,但是这些回填作业也总是会失败。

除了更改DAG以外,Airflow配置是默认配置。真的很感谢任何人在上述三个问题上提供的任何帮助,因为到目前为止,对我而言,这些问题似乎是无法理解的。

气流:

donot_pickle = True

SQL:

from airflow import DAG
from airflow.operators.dummy_operator import DummyOperator
from airflow.operators.postgres_operator import PostgresOperator
from datetime import datetime, timedelta

DEFAULT_ARGS = {
    'description': 'For now, a test DAG',
    'start_date': datetime(2018, 7, 19),
    'schedule_interval': "@hourly",
    'end_date': None,
    'owner': 'airflow', #placeholder
    'retries': 3,
}

dag = DAG(
    dag_id='test',
    default_args = DEFAULT_ARGS,
    )

test_redshift_op = PostgresOperator(
    task_id = 'test_redshift_op',
    sql = 'test.sql',
    postgres_conn_id = 'redshift',
    dag = dag
    )

test_redshift_op

1 个答案:

答案 0 :(得分:1)

1)schedule_interval不属于default_args。出于好奇-该代码示例来自何处? schedule_intervalDAG定义的一部分:

dag = DAG(
  dag_id='test',
  default_args = DEFAULT_ARGS,
  schedule_interval = '@hourly',
)

对于2)和3),假定出了什么问题,但未指明出了什么问题。