カーキ色はヒンディー語らしい

技術記事は https://zenn.dev/notrogue

Data Pipelines with Apache Airflow読んだ

learning.oreilly.com

内容

  • Airflowの概要
    • ワークフローエンジンのご利益
    • 提供する機能の概要(スケジュール、DAG)
    • Airflowを選ぶ理由、選ばない理由
  • Airflowの入門
    • DAGの例
    • Task・Operator
    • Airflow UI
    • スケジュール
    • テンプレート
    • Task間の依存定義
    • トリガー
  • 外部システム(S3やRDB)との連携
    • Operator、Hookの例の説明
  • 独自のコンポーネントの作り方(Operator、Hook、Sensor)
  • テスト
  • Airflowとコンテナ
    • PythonOperatorだと依存関係大変になるので、DockerOperator・KubernetesPodOperator使う話
  • ベストプラクティス
  • 本番デプロイ(Executor、ログ、監視)
  • セキュリティ(認証・認可)
  • クラウドサービス   * Azure、GCPAWS、Astronomer
    • (著者の一人がAstornomerの中の人ですが、意外とAstronomerの話題少ないです)
  • サンプル・プロジェクト
    • タクシーデータをAPIで取得して、変更

その他

  • Airflowは2系で大きく機能が増えましたが、この本は基本的に1系(1.10?)です。一部2系に関する補足説明があります
    • TaskFlow API
  • いくつかAirflow以外の話題がありますが、それに関しては説明があるので予備知識なくても大丈夫だと思います
    • pytest
    • Dockerコンテナ
    • Sagemaker

著者

  • Bas Harenslakさん
    • AstronomerのSolution Architect・Airflowのcommitter
  • Julian de Ruiter さん
    • GoDataDriven(データエンジニアリングのコンサル会社)のデータサイエンティスト・MLエンジニア

感想

  • 一冊まるごとAirflowな、(たぶん)初めて・唯一の本。Airflow使うなら読んで損はないかと
    • 本以外なら、公式ドキュメントかUdemyにいくつかコース()が良さそう
  • 入門の章は公式ドキュメントで十分かも。テストとかベストプラクティスあたりの価値が高いと思う
  • 他のワークフローエンジンとの比較(e.g. DagsterやPrefect)はあまりないです
  • Airlfowの「できるけどやらない方がいい事」、「やるなら注意してやるべき事」を説明してくれているのが、良きかな
    • 「ストリーミングデータの処理」とか「xcomに大きなデータ入れる」とか「動的なDAGを書く」とか
    • Airflowは分散Python行基盤なので、いずれもやろうと思えば出来てしまうので、↑のような制約の把握大事
  • execution dateの説明に一節丸ごと使っているのが面白い。Airflowでわかりにくい&引っかかりやすい概念なんだな