Python関数のdefault_args start_dateを参照することは可能ですか?エアフローETLパイプライン - 機能のスケジュール日付を使用していますか?
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2016, 11, 21),
'email': ['[email protected]'],
'email_on_failure': True,
'email_on_retry': True,
'retries': 1,
'retry_delay': timedelta(minutes=1)
}
私のPythonスクリプトは、主にこの文を発行するために、サブプロセスを使用しています。
query = '"SELECT * FROM {}.dbo.{} WHERE row_date = \'{}\'"'.format(database, select_database(database)[table_int],
query_date)
command = 'BCP {} queryout \"{}\" -t, -c -a 10240 -S "server" -T'.format(query, os.path.join(path, filename))
私が実行したいタスクを照会するために、BCPを使用している「を選択*テーブルからどこ日付= {}」。現在、私のPythonスクリプトには日付変数のロジックがすべて含まれています(デフォルトは昨日)。しかし、代わりにdefault_argを参照して、気流が日付を処理するようにするとよいでしょう。
簡単にするために、私はdefault_arg start_dateとスケジュール(毎日実行)を使用して、BCPコマンドで変数を入力したいと考えています。これは適切なアプローチですか、私はPythonスクリプトで日付のロジックを維持する必要がありますか?
クールに、私はこの実際に素早くで遊んでみましょう。最初は混乱していましたが、その後、「ds」と「yesterday_ds」などを示すAPIドキュメントのMacrosセクションが見つかりました。 – trench
はい、本当に混乱しやすいテーマであるため、もっと明確にしておくべきです。私は答えを更新したので、うまくいけばそれは少し良く説明されます。 –