Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Airflow社内勉強会@Classi

 Airflow社内勉強会@Classi

Classi社内で、チーム内でのわいがや勉強会の資料です。
ワークフローエンジンの一つである「Airflow」について取り上げています。

1820ffccbd1fde96e00ed5dab52597a0?s=128

Yuu.Kimy

March 29, 2019
Tweet

Transcript

  1. Copyright © 2018 Classi Corp. All Rights Reserved. Airflow社内勉強会 Copyright

    © 2018 Classi Corp. All Rights Reserved. 2019-3-29(金) in 社内わいがや勉強会
  2. Copyright © 2018 Classi Corp. All Rights Reserved. この資料は、社内の勉強会で利用した資料です。 Classi

    データAI部は、不定期でゆるーく、且つ、 まじめに勉強会を開催しています。笑 こちらの資料は、外部の方が公開されている記事を参考 に、Airflowの概要をまとめた資料です。 ※あくまで、入門編的にまとめたものですので、その点 は、ご了承くださいm(_ _)m 1 はじめに
  3. Copyright © 2018 Classi Corp. All Rights Reserved. 1. Airflowとは?

    2. どうやって使うの? 3. 何を実装すれば良いの? 4. デプロイは? 5. Airflowと仲良くなろうー 6. 現在と今後 2 お品書き
  4. Copyright © 2018 Classi Corp. All Rights Reserved. 名前: 木宮

    勇毅(@yuu_kimy) 所属: Classi株式会社 仕事: データエンジニア - データ基盤環境の構築 - データドリブン支援(BI推進の支援) これまでの登壇: お家で 子どもと楽しむプ ログラミング 丘サーファーへ「水」を届けるために 3 参考:自己紹介
  5. Copyright © 2018 Classi Corp. All Rights Reserved. The “Airflow”

    Platform is a tool for describing, executing, and monitoring workflows. 4 1. Airflowとは?
  6. Copyright © 2018 Classi Corp. All Rights Reserved. つまり、ワークフローのためのツールなのだ 5

    1. Airflowとは?
  7. Copyright © 2018 Classi Corp. All Rights Reserved. 例えば、「A ・B・

    Cという3つのタスクがあった時、これらをい つどの順番で実行するか」ということ 6 補足:ワークフローって何ぞや?
  8. Copyright © 2018 Classi Corp. All Rights Reserved. 7 補足:ワークフローの例

  9. Copyright © 2018 Classi Corp. All Rights Reserved. (色々と好みがあるだろうけど..) •

    Luigi(spotify開発) • Azkaban • Digdag(トレジャーデータ開発) • NiFi 8 補足:他にはどんなツールがあるの?
  10. Copyright © 2018 Classi Corp. All Rights Reserved. 当然ですが、Airflowの環境を用意しよー •

    自前で環境構築 • GCPのマネージドサービスを利用する 9 2. どうやって使うの?
  11. Copyright © 2018 Classi Corp. All Rights Reserved. • ドキュメントを見て頑張れ!!!

    → https://airflow.apache.org/installation.html 10 2. どうやって使うの?(自前で用意編)
  12. Copyright © 2018 Classi Corp. All Rights Reserved. • Cloud

    Composerを起動すれば 簡単簡単♪ 11 2. どうやって使うの?(GCPのサービス利用する)
  13. Copyright © 2018 Classi Corp. All Rights Reserved. 12 2.

    どうやって使うの?(GCPのサービス利用する)
  14. Copyright © 2018 Classi Corp. All Rights Reserved. 13 2.

    どうやって使うの?(GCPのサービス利用する) • ただし、起動に10分以上かかるのが難点.. (GKE環境が動いているためと思われる)
  15. Copyright © 2018 Classi Corp. All Rights Reserved. 14 3.

    何を実装すれば良いの? DAG
  16. Copyright © 2018 Classi Corp. All Rights Reserved. 15 3.

    何を実装すれば良いの? つまり、 Directed Acyclic Graph(有向非巡回グラフ) を書けば良いのだ!!
  17. Copyright © 2018 Classi Corp. All Rights Reserved. 16 3.

    何を実装すれば良いの?
  18. Copyright © 2018 Classi Corp. All Rights Reserved. 17 3.

    何を実装すれば良いの? 実装例を眺めよう〜
  19. Copyright © 2018 Classi Corp. All Rights Reserved. 18 3.

    何を実装すれば良いの? DAG全体の定義: 名称や開始日時、リトライ回数など DAGの中で実行するタスクの定義 : オペレータ(operator)を利用する タスクの依存関係の定義 : 実行順序を定義する
  20. Copyright © 2018 Classi Corp. All Rights Reserved. 19 ちなみにですが、、

    • さっきのDAGは、こういう風に実行される
  21. Copyright © 2018 Classi Corp. All Rights Reserved. 20 3.

    何を実装すれば良いの? • オペレータは色々あるけど、ドキュメントを見るべし!! → https://airflow.apache.org/howto/operator.html
  22. Copyright © 2018 Classi Corp. All Rights Reserved. 21 4.

    デプロイは? • Airflow環境に”dags”というディレクトリがあるの で、そこに実装したPythonのソースファイルを追 加するだけ♪ 簡単じゃろ?!
  23. Copyright © 2018 Classi Corp. All Rights Reserved. 22 4.

    デプロイは?(Cloud Composer環境の場合) • Cloud Composerを起動すると、その環境の専用 のGCSバケットが作成されるので、そのバゲット の”dags”フォルダに追加するだけ♪ 簡単じゃろ?!
  24. Copyright © 2018 Classi Corp. All Rights Reserved. 23 4.

    デプロイは?(Cloud Composer環境の場合)
  25. Copyright © 2018 Classi Corp. All Rights Reserved. 24 補足:Cloud

    Composerのシステム構成
  26. Copyright © 2018 Classi Corp. All Rights Reserved. 25 5.

    Airflowと仲良くなろうー • Airflow初めましてだけど、大丈夫・・?
  27. Copyright © 2018 Classi Corp. All Rights Reserved. 26 •

    ひとまず公式ドキュメントを読めば(多分)‍♂ → https://airflow.apache.org/index.html → もしくは、Google公式ドキュメント   (https://cloud.google.com/composer/docs/quickstart) 5. Airflowと仲良くなろうー
  28. Copyright © 2018 Classi Corp. All Rights Reserved. 27 •

    オペレータの挙動はどう知る? 5. Airflowと仲良くなろうー
  29. Copyright © 2018 Classi Corp. All Rights Reserved. 28 •

    やっぱり公式ドキュメントorソース(Python) → https://airflow.apache.org/code.html#api-reference-operators 5. Airflowと仲良くなろうー
  30. Copyright © 2018 Classi Corp. All Rights Reserved. 29 •

    よく使いそうなオペレータ • BashOperator • PythonOperator • GoogleCloudStorageToBigQueryOperator • CloudSqlQueryOperator • BigQueryOperator 5. Airflowと仲良くなろうー
  31. Copyright © 2018 Classi Corp. All Rights Reserved. 30 •

    困ったときはソースに限るww → https://airflow.apache.org/_modules/airflow/contrib/op erators/gcs_to_bq.html#GoogleCloudStorageToBigQuery Operator 5. Airflowと仲良くなろうー
  32. Copyright © 2018 Classi Corp. All Rights Reserved. 31 •

    ログってどこで見るの? 5. Airflowと仲良くなろうー
  33. Copyright © 2018 Classi Corp. All Rights Reserved. 32 •

    AirflowのWeb画面、logsフォルダを参照 5. Airflowと仲良くなろうー
  34. Copyright © 2018 Classi Corp. All Rights Reserved. 33 5.

    Airflowと仲良くなろうー
  35. Copyright © 2018 Classi Corp. All Rights Reserved. 34 •

    どのタイミングでDAGは実行されるの? 5. Airflowと仲良くなろうー
  36. Copyright © 2018 Classi Corp. All Rights Reserved. 35 •

    DAGのスケジュール設定次第 5. Airflowと仲良くなろうー
  37. Copyright © 2018 Classi Corp. All Rights Reserved. 36 5.

    Airflowと仲良くなろうー この場合は、”2018/4/23 0:00”(UTC)から開始します。 つまり、JSTでは、”2018/4/23 9:00”となります。 この場合は、任意の開始時間から開始されます。 タイミングは、日次で ”00:15”(UTC)に実行されます。 つまり、”09:15”(JST)となります。
  38. Copyright © 2018 Classi Corp. All Rights Reserved. 37 6.

    現在と今後 • Classiでは、データ基盤のワークフローとして利用中(今のところ)
  39. Copyright © 2018 Classi Corp. All Rights Reserved. 38 6.

    現在と今後 • どういうシーンで利用できるだろう・・? • 例えば、機械学習のパイプラインが考えられそう!
  40. Copyright © 2018 Classi Corp. All Rights Reserved. 39 おしまい〜♪

  41. Copyright © 2018 Classi Corp. All Rights Reserved. 40 参考:

    • Airflowのコンセプトと仕組みを理解する • ワークフローの基礎知識とワークフローシステム導入の メリット • OSSのワークフローエンジンを使ってみた感想 • そのデータフロー NiFiで楽にしてあげましょう • 有向非巡回グラフ • Apache AirFlowをDocker環境で構築して簡単なジョブを 作る • Cloud ML Engine に自動で 予測モデルをデプロイするパ イプラインを作ってみた