Prefect 触ってみた
Naofumi Yamada
Data Engineer#
Prefect 触ってみたAirflow のようなワークフローツールで、手軽にタスクやフローが定義できて好いです。 Docker サーバと通信したり、Slack 通知するタスクがあったり、動的 DAG が作れたり、ローカルテストしやすかったりします。
Kubernetes Agent から GKE デプロイする方法は要調査ですが、Runner として実装はされています。
本稿では、Prefect / First steps を実施してみます。 Colab を用意したので、そちらで触りながら、読むことができます。
#
Prefect とはAirflow よりデータフローを強化しているワークフローツールです。 気になる場合には、Why Not Airflow?を読むのがおすすめです。
以下のようなことが Airflow よりお手軽にできるのもポイントです。
#
触ってみよう#
Prefect のインストール2020-05-11 時点最新の 0.10.7 をシュッと動かすことができなかったので、prefect==0.10.6 を使います。0.10.6 も tornado のバージョンによって動かないので tornado==4.5.3 に固定してます。
#
タスクの定義もっともお手軽なのが、関数に @task デコレータをつけてタスクにするものです。
単一の関数より複雑なタスクはクラスで定義することもできます。
#
フローの定義Flow コンテキストの中で、通常の関数のようにタスクを呼び出すと、Prefectがワークフローを表す計算グラフを作成します。この時点では実行されません。
#
フローを実行するあとは定義したフローインスタンスを実行するだけです。