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
520
Airflowはすごいぞ!
Hank Ehly
June 08, 2022
Tweet
Share
More Decks by Hank Ehly
See All by Hank Ehly
【初心者/ハンズオン】Dockerコンテナの基礎知識
hankehly
0
44
Compositeパターン: オブジェクトの階層関係をエレガントに表現する方法
hankehly
0
31
10/29 Airflowの基礎を学ぶハンズオンワークショップ
hankehly
0
60
システム/データ品質保証のための Airflow 活用法
hankehly
0
270
海外の記事からコードレビューのBest Practiceを集めてみました
hankehly
0
380
OpenTelemetryで分散型アプリケーション の処理フローを可視化する
hankehly
0
580
【Ottertune】MLでDBを最適化するツールの紹介
hankehly
1
410
Head Firstデザインパターン第2版
hankehly
0
240
スマートデバイスを活用したデマンドレスポンス(DR)
hankehly
0
55
Other Decks in Programming
See All in Programming
低レイヤーから始める GUI
fadis
18
9.2k
Form実装基本を学び直してみた
hyugatsukui
0
230
Swift Expression Macros: a practical introduction
kishikawakatsumi
2
700
Cloudflare Workersと状態管理
chimame
2
470
ペパカレで入社した私が感じた2つのギャップと向き合い方
kosuke_ito
0
150
Refactor with using `available` and `deprecated`
417_72ki
3
380
kakutanitalk2022_opening_act
shirotamaki
0
110
なぜRubyコミュニティにコミットするのか?
luccafort
0
300
T3 Stack and TypeScript ecosystem
quramy
3
700
Remote SSHで行うVS Codeリモートホスト開発とトラブルシューティング
smt7174
1
420
Swift Concurrency in GoodNotes
inamiy
4
1.3k
ECテックカンファレンス2023
kspace
1
210
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
226
130k
StorybookのUI Testing Handbookを読んだ
zakiyama
8
3.2k
The Illustrated Children's Guide to Kubernetes
chrisshort
22
42k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
15
1.2k
Docker and Python
trallard
30
1.9k
Design by the Numbers
sachag
271
18k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
101
6.2k
Why You Should Never Use an ORM
jnunemaker
PRO
49
7.9k
Designing for humans not robots
tammielis
245
24k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
29
7.8k
Building Your Own Lightsaber
phodgson
96
4.9k
How STYLIGHT went responsive
nonsquared
89
4.2k
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