最近、私はエアフローを非常に多くテストしましたがexecution_date
、実行時に1 つの問題がありましたairflow trigger_dag <my-dag>
。
ここexecution_date
から、私たちが最初に考えることではないことを学びました:
Airflow は、ETL ニーズのソリューションとして開発されました。ETL の世界では、通常、データを要約します。したがって、2016 年 2 月 19 日のデータを要約したい場合は、2016 年 2 月 20 日午前 0 時 GMT に行います。これは、2016 年 2 月 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
。
Web UI では、 のようなものが表示され、scheduled__2016-09-20T00:00:00
タスクは で実行されます。これは、モデル2016-09-21T00:00:00
によると妥当と思われます。ETL
2016-09-20T00:10:00
ただし、ある日、私の DAGは不明な理由でトリガーされないので、手動でトリガーし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