최근 airflow trigger_dag <my-dag>
을 실행할 때 execution_date
에 하나의 문제가있는 공기통을 너무 많이 테스트했습니다.기류 trigger_dag execution_date가 다음 날인 이유는 무엇입니까?
내가 execution_date
우리가 here에서 처음에 생각이 아니라고 배웠습니다 : 공기 흐름이 ETL 요구에 맞는 솔루션으로 개발되었다
. ETL 세계에서 은 일반적으로 데이터를 요약합니다. 따라서 2016-02-19에 대한 데이터를 요약하려면 2016-02-20 자정 GMT (GMT)에서 수행합니다 .2016-02-19에 대한 모든 데이터를 바로 작성한 후 바로 이됩니다. 코드 위
start_date = datetime.combine(datetime.today(),
datetime.min.time())
args = {
"owner": "xigua",
"start_date": start_date
}
dag = DAG(dag_id="hadoopprojects", default_args=args,
schedule_interval=timedelta(days=1))
wait_5m = ops.TimeDeltaSensor(task_id="wait_5m",
dag=dag,
delta=timedelta(minutes=5))
는 첫 번째 작업은 실제 작업 전에 다른 5 분 기다리는 TimeDeltaSensor이 내 일상 워크 플로우의 시작 부분입니다, 그래서 이것은 내 DAG가 2016-09-09T00:05:00
, 2016-09-10T00:05:00
에서 트리거된다는 것을 의미합니다 ...
웹 UI에서는 scheduled__2016-09-20T00:00:00
과 같은 것을 볼 수 있으며 작업은 에서 실행됩니다. 이는 ETL
모델에 따라 합리적인 것처럼 보입니다.
언젠가 내 dag는 알 수없는 이유로 트리거되지 않으므로 수동으로 트리거합니다. 2016-09-20T00:10:00
에서 트리거하면 TimeDeltaSensor는 실행하기 전에 2016-09-21T00:15:00
까지 기다립니다.
이것은 내가 원하는 것이 아니며, 다음 날에 2016-09-20T00:15:00
으로 실행하고 싶습니다. execution_date
에서 --conf '{"execution_date": "2016-09-20"}'
까지 전달하려고했으나 작동하지 않습니다.
이 문제는 어떻게 해결해야합니까? 먼저
$ airflow version
[2016-09-21 17:26:33,654] {__init__.py:36} INFO - Using executor LocalExecutor
____________ _____________
____ |__()_________ __/__ /________ __
____ /| |_ /__ ___/_ /_ __ /_ __ \_ | /|//
___ ___ |/_/ _ __/ _// /_/ /_ |/ |//
_/_/ |_/_/ /_/ /_/ /_/ \____/____/|__/
v1.7.1.3
나는 그것이'start_date' 문제를 생각하지 않습니다를 읽을 수있다, 나는 하루의 자정에 내'start_date' 둥근 비하, 내 문제가 있다는 것입니다'execute_date '는 다음 날로 예정되어 있습니다. 외부에서 dag가 발생하면 위와 같이 비합리적이라고 생각합니다. –
나는 스케줄링 할 ETL 스타일을 이해하고 있지만 어떻게하면 내 문제를 해결할 수 있을까요? 알 수없는 이유로 트리거가 트리거되지 않고 trigger_dag 하위 명령 이외에도'execution_date'를 트리거 할 수있는 방법은'backfill '이 경우, 왜 우리는'trigger_dag'가 필요한가? –
스케줄러를 실행하고 있습니까? 'airflow scheduler' – mistercrunch