Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Airflow社内勉強会@Classi
Search
Yuu.Kimy
March 29, 2019
Technology
0
160
Airflow社内勉強会@Classi
Classi社内で、チーム内でのわいがや勉強会の資料です。
ワークフローエンジンの一つである「Airflow」について取り上げています。
Yuu.Kimy
March 29, 2019
Tweet
Share
More Decks by Yuu.Kimy
See All by Yuu.Kimy
dbtをAirflowで動かす道のりは続く...
yuukimiya
0
670
Scheduled Queryの運用を楽にするBotを実装してみたお話
yuukimiya
0
160
DPCT発表資料.pdf
yuukimiya
0
9.3k
お家で子どもと楽しむプログラミング
yuukimiya
0
1.3k
Other Decks in Technology
See All in Technology
ユーザーストーリーマッピングから始めるアジャイルチームと並走するQA / Starting QA with User Story Mapping
katawara
0
200
Tech Blogを書きやすい環境づくり
lycorptech_jp
PRO
1
240
現場で役立つAPIデザイン
nagix
33
12k
AndroidデバイスにFTPサーバを建立する
e10dokup
0
250
7日間でハッキングをはじめる本をはじめてみませんか?_ITエンジニア本大賞2025
nomizone
2
1.8k
トラシューアニマルになろう ~開発者だからこそできる、安定したサービス作りの秘訣~
jacopen
2
2k
技術負債の「予兆検知」と「状況異変」のススメ / Technology Dept
i35_267
1
1.1k
開発組織のための セキュアコーディング研修の始め方
flatt_security
3
2.3k
MC906491 を見据えた Microsoft Entra Connect アップグレード対応
tamaiyutaro
1
540
Larkご案内資料
customercloud
PRO
0
650
AndroidXR 開発ツールごとの できることできないこと
donabe3
0
130
The Future of SEO: The Impact of AI on Search
badams
0
190
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Six Lessons from altMBA
skipperchong
27
3.6k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
410
We Have a Design System, Now What?
morganepeng
51
7.4k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.1k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
100
18k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
366
25k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.2k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
27
1.9k
A Tale of Four Properties
chriscoyier
158
23k
Transcript
Copyright © 2018 Classi Corp. All Rights Reserved. Airflow社内勉強会 Copyright
© 2018 Classi Corp. All Rights Reserved. 2019-3-29(金) in 社内わいがや勉強会
Copyright © 2018 Classi Corp. All Rights Reserved. この資料は、社内の勉強会で利用した資料です。 Classi
データAI部は、不定期でゆるーく、且つ、 まじめに勉強会を開催しています。笑 こちらの資料は、外部の方が公開されている記事を参考 に、Airflowの概要をまとめた資料です。 ※あくまで、入門編的にまとめたものですので、その点 は、ご了承くださいm(_ _)m 1 はじめに
Copyright © 2018 Classi Corp. All Rights Reserved. 1. Airflowとは?
2. どうやって使うの? 3. 何を実装すれば良いの? 4. デプロイは? 5. Airflowと仲良くなろうー 6. 現在と今後 2 お品書き
Copyright © 2018 Classi Corp. All Rights Reserved. 名前: 木宮
勇毅(@yuu_kimy) 所属: Classi株式会社 仕事: データエンジニア - データ基盤環境の構築 - データドリブン支援(BI推進の支援) これまでの登壇: お家で 子どもと楽しむプ ログラミング 丘サーファーへ「水」を届けるために 3 参考:自己紹介
Copyright © 2018 Classi Corp. All Rights Reserved. The “Airflow”
Platform is a tool for describing, executing, and monitoring workflows. 4 1. Airflowとは?
Copyright © 2018 Classi Corp. All Rights Reserved. つまり、ワークフローのためのツールなのだ 5
1. Airflowとは?
Copyright © 2018 Classi Corp. All Rights Reserved. 例えば、「A ・B・
Cという3つのタスクがあった時、これらをい つどの順番で実行するか」ということ 6 補足:ワークフローって何ぞや?
Copyright © 2018 Classi Corp. All Rights Reserved. 7 補足:ワークフローの例
Copyright © 2018 Classi Corp. All Rights Reserved. (色々と好みがあるだろうけど..) •
Luigi(spotify開発) • Azkaban • Digdag(トレジャーデータ開発) • NiFi 8 補足:他にはどんなツールがあるの?
Copyright © 2018 Classi Corp. All Rights Reserved. 当然ですが、Airflowの環境を用意しよー •
自前で環境構築 • GCPのマネージドサービスを利用する 9 2. どうやって使うの?
Copyright © 2018 Classi Corp. All Rights Reserved. • ドキュメントを見て頑張れ!!!
→ https://airflow.apache.org/installation.html 10 2. どうやって使うの?(自前で用意編)
Copyright © 2018 Classi Corp. All Rights Reserved. • Cloud
Composerを起動すれば 簡単簡単♪ 11 2. どうやって使うの?(GCPのサービス利用する)
Copyright © 2018 Classi Corp. All Rights Reserved. 12 2.
どうやって使うの?(GCPのサービス利用する)
Copyright © 2018 Classi Corp. All Rights Reserved. 13 2.
どうやって使うの?(GCPのサービス利用する) • ただし、起動に10分以上かかるのが難点.. (GKE環境が動いているためと思われる)
Copyright © 2018 Classi Corp. All Rights Reserved. 14 3.
何を実装すれば良いの? DAG
Copyright © 2018 Classi Corp. All Rights Reserved. 15 3.
何を実装すれば良いの? つまり、 Directed Acyclic Graph(有向非巡回グラフ) を書けば良いのだ!!
Copyright © 2018 Classi Corp. All Rights Reserved. 16 3.
何を実装すれば良いの?
Copyright © 2018 Classi Corp. All Rights Reserved. 17 3.
何を実装すれば良いの? 実装例を眺めよう〜
Copyright © 2018 Classi Corp. All Rights Reserved. 18 3.
何を実装すれば良いの? DAG全体の定義: 名称や開始日時、リトライ回数など DAGの中で実行するタスクの定義 : オペレータ(operator)を利用する タスクの依存関係の定義 : 実行順序を定義する
Copyright © 2018 Classi Corp. All Rights Reserved. 19 ちなみにですが、、
• さっきのDAGは、こういう風に実行される
Copyright © 2018 Classi Corp. All Rights Reserved. 20 3.
何を実装すれば良いの? • オペレータは色々あるけど、ドキュメントを見るべし!! → https://airflow.apache.org/howto/operator.html
Copyright © 2018 Classi Corp. All Rights Reserved. 21 4.
デプロイは? • Airflow環境に”dags”というディレクトリがあるの で、そこに実装したPythonのソースファイルを追 加するだけ♪ 簡単じゃろ?!
Copyright © 2018 Classi Corp. All Rights Reserved. 22 4.
デプロイは?(Cloud Composer環境の場合) • Cloud Composerを起動すると、その環境の専用 のGCSバケットが作成されるので、そのバゲット の”dags”フォルダに追加するだけ♪ 簡単じゃろ?!
Copyright © 2018 Classi Corp. All Rights Reserved. 23 4.
デプロイは?(Cloud Composer環境の場合)
Copyright © 2018 Classi Corp. All Rights Reserved. 24 補足:Cloud
Composerのシステム構成
Copyright © 2018 Classi Corp. All Rights Reserved. 25 5.
Airflowと仲良くなろうー • Airflow初めましてだけど、大丈夫・・?
Copyright © 2018 Classi Corp. All Rights Reserved. 26 •
ひとまず公式ドキュメントを読めば(多分)♂ → https://airflow.apache.org/index.html → もしくは、Google公式ドキュメント (https://cloud.google.com/composer/docs/quickstart) 5. Airflowと仲良くなろうー
Copyright © 2018 Classi Corp. All Rights Reserved. 27 •
オペレータの挙動はどう知る? 5. Airflowと仲良くなろうー
Copyright © 2018 Classi Corp. All Rights Reserved. 28 •
やっぱり公式ドキュメントorソース(Python) → https://airflow.apache.org/code.html#api-reference-operators 5. Airflowと仲良くなろうー
Copyright © 2018 Classi Corp. All Rights Reserved. 29 •
よく使いそうなオペレータ • BashOperator • PythonOperator • GoogleCloudStorageToBigQueryOperator • CloudSqlQueryOperator • BigQueryOperator 5. Airflowと仲良くなろうー
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と仲良くなろうー
Copyright © 2018 Classi Corp. All Rights Reserved. 31 •
ログってどこで見るの? 5. Airflowと仲良くなろうー
Copyright © 2018 Classi Corp. All Rights Reserved. 32 •
AirflowのWeb画面、logsフォルダを参照 5. Airflowと仲良くなろうー
Copyright © 2018 Classi Corp. All Rights Reserved. 33 5.
Airflowと仲良くなろうー
Copyright © 2018 Classi Corp. All Rights Reserved. 34 •
どのタイミングでDAGは実行されるの? 5. Airflowと仲良くなろうー
Copyright © 2018 Classi Corp. All Rights Reserved. 35 •
DAGのスケジュール設定次第 5. Airflowと仲良くなろうー
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)となります。
Copyright © 2018 Classi Corp. All Rights Reserved. 37 6.
現在と今後 • Classiでは、データ基盤のワークフローとして利用中(今のところ)
Copyright © 2018 Classi Corp. All Rights Reserved. 38 6.
現在と今後 • どういうシーンで利用できるだろう・・? • 例えば、機械学習のパイプラインが考えられそう!
Copyright © 2018 Classi Corp. All Rights Reserved. 39 おしまい〜♪
Copyright © 2018 Classi Corp. All Rights Reserved. 40 参考:
• Airflowのコンセプトと仕組みを理解する • ワークフローの基礎知識とワークフローシステム導入の メリット • OSSのワークフローエンジンを使ってみた感想 • そのデータフロー NiFiで楽にしてあげましょう • 有向非巡回グラフ • Apache AirFlowをDocker環境で構築して簡単なジョブを 作る • Cloud ML Engine に自動で 予測モデルをデプロイするパ イプラインを作ってみた