はじめに
Airflow Summit は、Apache Airflow のユーザーと開発者のグローバルコミュニティのための年次イベントです。2022年は2回目の開催で、東京では実際に集まって講演を聴講する local event が行われました。
ここ数年、コロナ禍でイベントが一斉にオンライン化され、他の開発者とリアルで会う機会が少なかったので、いい気分転換でしたし、オフラインイベントに参加する重要さ を感じさせられました。開催は Tokyo Apache Airflow Meetup が行い、今後も Airflow に関するイベントを開催していくそうなので、少しでも Airflow に興味があればご参加ください!(僕が会いたい!)
当日の流れ
エリア/施設
開催地は品川区にある大崎ブライトコアホールでした。朝から気温と日差しが厳しく、マラソンでもしてきたような汗を掻いた状態で入り口にたどり着きました…
ビルの3Fに上がると Tokyo Apache Airflow Meetup の運営メンバーが親切に第1会議室まで案内してくれました。中に入ると7名ほどの Airflow ユーザーが集まっておりました。
早速 Airflow Summit 2022 の公式Tシャツを一枚ゲット!
講演の内容
1. Credit Karma社の内部 ML プラットフォーム "Vega"(動画はこちら)
Credit Karma社が、自社のデータサイエンティスト向けに「Vega」と呼ばれるMLプラットフォームをAirflowとGCPベースで開発しているそうです。データサイエンティストが Vega の Python API を通じて特徴量の生成、ETL、モデル学習やモデル分析を手軽にワークフロー化することができます。裏では、動的に Airflow DAG を生成して実行しているそうです。Airflow がプラットフォームでありながら、他のプラットフォームの基盤として使われているところが印象的でした。
2. Acryl Data社がメンテナーを務めるメタデータプラットフォーム "DataHub"(動画はこちら)
DataHubは、LinkedInで開発されたオープンソースメタデータプラットフォームです。Acryl Data社がそのマネージド版をエンタープライズ向けに提供しています。データウェアハウスのように、たくさんのデータ源と連携できますが、BIツールのようにクエリーをかけてグラフを作ったりするためのものではありません。DataHub は、あなたのデータに関するメタデータ(つまりスキーマ、Null値の数、月次クエリー数、所在地、ACL、タグ)を管理するためのプラットフォームです。具体的に、データパイプラインにおいてどこで何が行われたかのデータリネージ(系統)のトラッキング、多岐にわたるデータ源(例:Athena、BigQuery、Metabase、PostgreSQL)の横断的な検索、データの所有者やアクセスコントロールリスト(ACL)の管理、といったことができます。
Airflowは、データリネージのトラッキングとデータの正確性の検証で、実際にクエリーを実行するためのコンピュートバックエンドとして使われます。既存のデータパイプラインで、データを状態A → 状態Bに変えるためのロジックをAirflowで実行し「このステップで、テーブルAに100行追加されました。」と、データがどう変わったか DataHub に伝えるイメージです。また、データパイプラインにおける QA ステップ(データの正確性を確認するステップ)に Airflow を使います。例えば、状態A → 状態Bに変換した後に、行数の確認をAirflowで行い、一定閾値を超えた場合、その旨をまた DataHub に伝えた上でパイプラインを中断するなど。
興味ある人は、ぜひQuickstartを参考に試してみてください(あまりにもQuickに試せちゃうのでコードを貼り付けます!)
python3 -m pip install --upgrade pip wheel setuptools
python3 -m pip uninstall datahub acryl-datahub || true
python3 -m pip install --upgrade acryl-datahub
datahub docker quickstart # quickstartを起動する
datahub docker nuke # 環境をリセットする
3. DXC Technology社の自動運転事業における Airflow の使い方(動画はこちら)
DXC Technology社は、自動運転事業の開発業務で、大規模(1ヶ月に500,000回のDAG実行)なバッチ処理ワークロードにAirflowを活用しているそうです。Airflowを採用した理由は「コミュニティー」「拡張性」「スケーラビリティ」の3つだそうです。
ただ、最も盛り上がったのは「どうAirflowを拡張しているか」という話でした。
- AirflowダッシュボードへのログインやREST APIとの通信をクラウドIAMで制御する
- Celeryワーカーのジョブが終わるまで待ってから、ローリングアップデートする "smart celery-queue assignment"
- 1,000以上のDAGの同時実行を実現するためにPgBouncerを導入してデータベースへのコネクション数を抑える
- 独自のロギング/アラートフレームワークの開発
等々。目がキラキラするような拡張機能を次々紹介しました。上記リストに含まれないものもあったので、興味ある方はぜひ動画を見てください。現在内部向けに開発を進めていますが、オープンソース化を前向きに検討しているそうです(個人的にCeleryワーカーのローリングアップデートがめちゃめちゃ気になる…)
講演の後
せっかくオフラインということで、講演後に周りの方と交流する機会があり、近くのテーブルに自己紹介しに行きました(名刺交換は何年ぶりだろう…)
Airflowをどう活用しているかヒアリングさせていただいたところ、検証用に小さなVMにデプロイしている方も、公式コンテナイメージをKubernetesにデプロイしている方もいました。MWAA (AWS) や Cloud Composer (GCP) のマネージド Airflow サービスの費用対効果や、AWS の Elastic Container Service (ECS) にどう安くデプロイできるかなどと話題が自然と展開し、Airflowユーザーならではの充実した会話ができて楽しかったです!
最後まで残った人で Airflow Tシャツを着た集合写真を撮り、一本締めで解散しました。(一本締めは嘘…)
終わりに
Airflow Summit 2022 のオフラインイベントに参加したおかげで、技術の話で盛り上がる色々な方と出会い、Airflow に対する関心がさらに高まりました。Airflow 関連のイベントにもっと参加したくなってきたので、次の機会を楽しみにしています。この記事を読んでいるあなたも、ぜひ参加していただければと思います。
Tokyo Apache Airflow Meetup の運営メンバー、諸々の準備と当日の運営はありがとうございました!
また、業務時間内にも関わらず参加させてくださった SMAP Energy にも感謝です!SMAPでは、MLモデルの学習/予測や、時間がかかるバッチ処理ワークロードに Airflow を活用していますので、興味ある方はカジュアル面談でお話しましょう!
Airflow についてもっと詳しく知りたい方、コミュニティとつながりたい方、以下のリンクが参考になれたらと思います。
- Tokyo Apache Airflow Meetup
- Airflowの公式Slackチャンネル(#users-japanでは日本語で話せるよ!)
- Airflow Summit 2022 東京のイベントページ
- Airflow (GitHub)
- Airflow ドキュメント