Prefect 触ってみた
Naofumi Yamada
Data EngineerPrefect 触ってみた#
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がワークフローを表す計算グラフを作成します。この時点では実行されません。
フローを実行する#
あとは定義したフローインスタンスを実行するだけです。