2017-12-14 3 views
0

私はETLワークフローの代替ツールとして最後の数日間Airflowを評価しており、AirflowでDAGの名前が変更されたときにいくつかの面白い動作が見つかりました。Apache AirflowでDAGの名前を変更する方法

私は、ファイル内のDAGは

dag = DAG('hello_world', description='Simple DAG', 
      schedule_interval='0 12 * * *', 
      start_date=datetime(2017, 11, 1), catchup=True) 

hello_world.pyと呼ばれ、このDAGは11月に10日間実行されていた、私はその後、私は単にの名前を変更することを決定した場合dagから 'yet_another_hello_world'へ同じファイル内 hello_world.py

dag = DAG('yet_another_hello_world', description='Simple DAG', 
      schedule_interval='0 12 * * *', 
      start_date=datetime(2017, 11, 1), catchup=True) 

これは、空気の流れの中に配備されている場合は、単純にジョブの名前の変更をしてイムは、それが自動的にピックアップして登録されている、などのビジネスロジックを変更しません新しい仕事、DAGビュー

  • hello_world
  • yet_another_hello_world
に見える今2ジョブがあるので、

Beccepts catchup = True DAGの定義では、スケジューラは自動的にこの変更を参照し、新しいジョブを登録します。yet_another_hello_world 11月1日から実行されなかった実行をバックフィルし続けます。また、既存のhello_worldジョブをそのまま残しています。

最終的に、私はこれを既存のジョブの名前に変更し、古いhello_worldジョブを保存しないようにします。これは単純な名前変更であることを気流に示す方法はありますか?

答えて

0

ダグの名前、schedule_intervalまたはstart_dateを変更する場合は、常に新しいダグファイルを作成することをお勧めします。

+0

新しいファイルを作成して最終的に新しいジョブIDを作成すると、前回のジョブからのジョブ実行の履歴が失われることがあります。 Idは新しいジョブ名にその履歴を保持したい場合は – vcetinick

+0

ジョブのIDではなく、dag idを変更するだけで済みます。特定のDAGの履歴については、気流メタデータベースから古いdag_idを新しいdag_idで変更できます – sdikby

関連する問題