最近、私がテストした気流airflow trigger_dag <my-dag>
を実行しているときにexecution_date
で一つの問題を持っていることそんなに。エアフローtrigger_dag execution_dateは翌日ですか?
私はexecution_date
たちはhereから初めてで考えるものではないことを学んだ:
エアフローがETLのニーズのためのソリューションとして開発されました。 ETLの世界では、通常 というデータを集計します。私は 2016年2月19日のデータを集計するのであれば、私は2016年2月19日のために、すべてのデータが利用可能になった後 右されるであろう、2016年2月20日深夜GMTでそれを行うだろう。コードの上
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
のようなものが表示され、ETL
モデルでは妥当と思われる2016-09-21T00:00:00
でタスクが実行されます。
私のダグは未知の理由でトリガーされないので、手動で起動します。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'を丸めhaved、私の問題は、 'execute_dateですダグが外部から誘発された翌日に設定されているので、上記のように不合理だと思う。 –
私はスケジュールのETLスタイルを理解していますが、私は問題を解決することができます:不明な理由で、私のダグがトリガされていない、 'trigger_dag'サブコマンドの他に' execution_date' 'この場合、なぜ' trigger_dag'が必要なのでしょうか?ナンセンスですか? –
スケジューラを実行していますか? 'airflow scheduler' – mistercrunch