Amazon MWAAがApache Airflow v2.2.2をサポートしました

2022.02.03

いわさです。

Amazon Managed Workflow for Apache Airflow(MWAA)がAirflow v2.2を利用出来るようになりました。
マネージメントコンソールからAirflowバージョンを指定するだけですぐに利用可能です。

前回まではv2.0.2がサポートされていました。
v2.1を超えて一気にv2.2がサポートされましたね。

新機能を試す

MWAAで新しいバージョンが使えるようになりましたよ!ってだけなので、本題はここまでなのですが、せっかくなのでAirflow 2.1と2.2の新機能を少しだけ触ってみましょう。

ツリービューの自動更新機能

v2.0でグラフビューの自動更新機能が追加されていましたが、v2.1でツリービューも自動更新に対応しました。

カレンダービューの追加

こちらはv2.1で追加された新しいビューです。
DAGの実行状態をカレンダー形式で可視化出来ます。

DAGが一度でも失敗した日はfailedとして表示されます。
ツールチップからより詳細な実行数も確認可能です。

対象日をクリックすると、対象日のツリービューを開くことが出来ます。

プロバイダーページ

v2.2で、AdminタブにProvidersタブが追加されています。
プロバイダーパッケージ情報の一覧を確認することが出来ます。

カスタムタイムテーブル

おそらくv2.2で一番大きなアップデートでしょうか。
これまでcron式かdatetime.timedeltaを使うことが出来ましたが、より柔軟なタイムスケージュールを構築出来るように、カスタムタイムテーブル機能が追加されています。

カスタムタイムテーブルを使う前に、まずはプラグインを作成する必要があります。

Customizing DAG Scheduling with Timetables — Airflow Documentation

from airflow.plugins_manager import AirflowPlugin
from airflow.timetables.base import Timetable

class AfterWorkdayTimetable(Timetable):
    pass

class WorkdayTimetablePlugin(AirflowPlugin):
    name = "workday_timetable_plugin"
    timetables = [AfterWorkdayTimetable]

DAGのパラメータで指定したカスタムテーブルクラスはSchedule列に表示されます。

さいごに

本日はAmazon MWAAで新たにサポートされた、Apache Airflow v2.2.2を少し触ってみました。
アップグレードも簡単かなと思ったら、現在旧バージョンからのインプレースアップグレードは対応していないようです。アップグレード方法の詳細は以下をご参照ください。

Upgrading from Apache Airflow v2.0.2 to Apache Airflow v2.2.2