@task.bash を使った BashOperator の定義
Bash タスクを使うと、任意のシェルコマンドやスクリプトを指定して、Airflow のワークフローに追加できます。既存の環境に Airflow を導入する際の、最初の一歩として最適です。
これまで、データアナリティクスチームへの納品前に、cleanup.sh というスクリプトを使ってデータのクリーニングを手動で行ってきました。しかし、担当タスクが増えるにつれて、すべてを手動で実行し続けることが難しくなり、エラーや再試行への対応にも手が回らなくなってきました。そこで、このスクリプトを Airflow のオペレーターとして実装したいと思います。
Airflow の DAG オブジェクトとタスクオブジェクトはすでにインポートされています。
この演習はコースの一部です
Python で学ぶ Apache Airflow 入門
演習の手順
@task.bashデコレーターを使ってタスクを定義してください。- メソッド名は
cleanup_taskにしてください。 - タスクが
cleanup.shを返すようにしてください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
@dag(
dag_id='analytics_dag',
start_date=datetime(2026,1,1)
)
def analytics_dag():
# Specify a Bash task
@____
def ____():
return '____'
# Run the task
cleanup_task()
analytics_dag()