Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Airflowはすごいぞ!
Hank Ehly
June 08, 2022
Programming
0
380
Airflowはすごいぞ!
Hank Ehly
June 08, 2022
Tweet
Share
More Decks by Hank Ehly
See All by Hank Ehly
Strategyパターン
hankehly
0
140
PUTとPOSTどっち使う?
hankehly
0
270
セマフォでタスクの同時実行数制限
hankehly
0
190
Other Decks in Programming
See All in Programming
BASE BANKチームの技術選定と歴史 / how to decide technology selection for startup
budougumi0617
0
1.1k
「混ぜるな危険」を推進する設計
minodriven
6
1.8k
[월간 데이터리안 세미나 6월] 스스로 성장하는 분석가 커리어 이야기
datarian
0
220
Gitlab CIでMRを自動生成する
forcia_dev_pr
0
120
無限スクロールビューライブラリ 二つの設計思想比較
harumak
0
250
開発速度を5倍早くするVSCodeの拡張機能を作った
purp1eeeee
2
160
チームでカレーを作ろう!アジャイルカレークッキング
akitotsukahara
0
840
Chart実装が楽になりました。
keisukeyamagishi
0
120
Power Automateドリブンのチームマネジメント
hanaseleb
0
190
Terraform Plan/Apply結果の自動通知
ymmy02
0
280
Node.jsデザインパターンを読んで
mmmommm
0
2.7k
設計ナイト2022 トランザクションスクリプト
shinpeim
11
2.1k
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
169
20k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
269
11k
Designing for humans not robots
tammielis
241
23k
Agile that works and the tools we love
rasmusluckow
319
19k
In The Pink: A Labor of Love
frogandcode
131
21k
Building Better People: How to give real-time feedback that sticks.
wjessup
344
17k
Designing the Hi-DPI Web
ddemaree
272
32k
Infographics Made Easy
chrislema
233
17k
Mobile First: as difficult as doing things right
swwweet
213
7.5k
Typedesign – Prime Four
hannesfritz
34
1.4k
Fashionably flexible responsive web design (full day workshop)
malarkey
396
62k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
212
20k
Transcript
Airflowはすごいぞ!
自己紹介 • Hank Ehly (ハンク イーリー) • ENECHANGE株式会社 • qiita.com/hankehly
アジェンダ • Airflowとは • コンセプト qiita.com/hankehly
Airflowとは
Airflowとは > 概要 • ワークフローを作成、実行、監視するためのプラットフォーム • Python • Airbnb、メルカリ、楽天、Tesla、Twitter、等々 •
マネージド版 ◦ Amazon Managed Workflows for Apache Airflow (AWS) ◦ Cloud Composer (GCP) ◦ Astronomer qiita.com/hankehly
Airflowとは > 解決する問題 1. タスクの依存関係を明確にする qiita.com/hankehly ドキュメントやコメントで書く タスクがフローチャートとして表示される 2. エラーが起きた箇所を特定する
追跡できるようなログを出力する エラー表示のタスクをクリックしてログを確認する 3. タスクを同時に実行する multiprocessing や asyncio で頑張る 依存関係がないタスクは同時に実行される 4. 失敗しがちな処理を3回までリトライする リトライ用のデコレーター関数を使う タスクの「最大リトライ数」を設定する 等々… ワークフローの開発において様々な課題がある …
Airflowとは > 使い方のイメージ ワークフロー名 成功/失敗回数 実行頻度 qiita.com/hankehly
Airflowとは > 使い方のイメージ qiita.com/hankehly
Airflowとは > 使い方のイメージ N回目の実行のログ qiita.com/hankehly
Airflowとは > 使い方のイメージ qiita.com/hankehly
コンセプト
コンセプト > DAGs • DAGとは「Directed Acyclic Graph」の略 • ワークフロー/パイプライン •
依存関係にあるタスクをどの順番で実行するか qiita.com/hankehly
コンセプト > Tasks • DAGは、Taskで構成されている • Python関数、Rubyのコンテナ、Bashスクリプト • 状態を持つ ◦
リトライ待ち ◦ 実行中 ◦ 失敗 / 成功 ◦ 等々… qiita.com/hankehly Airflowで表示 a >> [b, c] >> d 開発者が書く
コンセプト > Operators • 「タスクのテンプレート」 • 用意されているものがたくさんある ◦ BashOperator(Bashコマンドを実行) ◦
EC2StartInstanceOperator(EC2インスタンスを起動する) ◦ PythonOperator(Python関数を実行) ◦ EmailOperator(Eメールを送信する) ◦ DockerOperator(コンテナを実行) ◦ SlackAPIPostOperator(Slackにメッセージを投稿する) start_instance = EC2StartInstanceOperator( task_id="start_instance", instance_id="***", ) Operatorの使い方 qiita.com/hankehly
コンセプト > Variables start_instance = EC2StartInstanceOperator( task_id="start_instance", instance_id=Variable.get("INSTANCE_ID"), ) qiita.com/hankehly
コンセプト > Logging UI から個別のタスクログが確認できる • S3 • CloudWatch •
Google Cloud Storage • Elasticsearch qiita.com/hankehly
ご清聴ありがとうございました https://qiita.com/hankehly/items/1f02a34740276d1b8f0f