SlideShare a Scribd company logo
takemikami’s note	– http://takemikami.com/
三上 威 (フリーランスITエンジニア)		twitter:	@takemikami
マーケティングデータ分析基盤技術勉強会
『Apache	Airflow	入門』
Apache	Airflowの概要・Airflowによるジョブ実行と利用シーン
1
Airflow
2017.3.16	株式会社フロムスクラッチ 社内勉強会
Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
フロムスクラッチ
社内勉強会
takemikami’s note	– http://takemikami.com/
はじめに
• 本勉強会では、Airflowの以下の点についてお話しします。
– Apache	Airflowの概要と特徴の紹介
– Airflowでの簡単なワークフローを実行方法
– Airflowの特徴を活かせる利用シーンの紹介
2Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
本勉強会で説明する内容の概要を示します。
Python言語で定義したワークフローを
スケジュール・モニタリングするプラットフォーム
Apache	Airflowとは
takemikami’s note	– http://takemikami.com/
アジェンダ
• Apache	Airflowとは
– Apache	Airflowとは
– Apache	Airflowの特徴
– いわゆるジョブ管理ツールとの違い
– 類似ツールの紹介
• Apache	Airflowでのジョブ実行
– Airflowのセットアップ
– AirflowのUI
– デモ
• Apache	Airflowの利用シーン
– レポーティングでの利用イメージ
– 機械学習での利用イメージ
3Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
Apache	Airflow入門のアジェンダを示します。
takemikami’s note	– http://takemikami.com/Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved. 4
Apache	Airflowとは
• Apache	Airflowとは
• Apache	Airflowの特徴
• いわゆるジョブ管理ツールとの違い
• 類似ツールの紹介
takemikami’s note	– http://takemikami.com/
Apache	Airflowとは
• Python言語によるタスクのワークフロー定義
• 依存関係に基づいたジョブの実行
• ワークフロー管理のためのUI提供
– パイプラインのヴィジュアライズ
– プロセスのモニタリング
5Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
Apache	Airflowとは
Apache	Airflowの紹介をします。
Python言語で定義したワークフローを
スケジュール・モニタリングするプラットフォーム
takemikami’s note	– http://takemikami.com/
Apache	Airflowの特徴
• タスクの依存関係をPython言語で定義・管理
– 特別な記法の習得が不要
– ワークフローの定義を、SCMで管理しやすい
• タスクの依存関係に基づいたワークフローの動的生成
– タスクの要求変換の対応が容易
• タスクの実行ログの管理と再実行
– 未実行のタスクのみ実行するスケジュールが可能
6Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
Apache	Airflowとは
Airflowの主な特徴について説明します。
takemikami’s note	– http://takemikami.com/
タスクの依存関係の考え方
• 「売上」「商品原価」「媒体別広告費」→「広告効果レポート」
ワークフローの依存関係は、以下の2つになる
7Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
Apache	Airflowとは
タスクの依存関係の考え方の整理します。
広告費
集計
媒体商品別
広告費
広告効果
集計
広告効果
レポート
売上
商品原価
媒体B
広告費
媒体A
広告費
利益計算
商品別
利益
依存関係
依存関係
takemikami’s note	– http://takemikami.com/
ワークフロー動的生成の基本: DAG(有向非巡回グラフ)
• DAG(Directed	Acyclic	Graph,	有向非巡回グラフ)であれば、
タスクの依存関係はトポロジカルソートで解決できる
• DAGとはCycle(閉路)を持たない有向グラフのこと
8Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
Apache	Airflowとは
ワークフローの動的生成に関する用語について整理します。
DAGの例:
2
11
5
10
9
7 8
3
Cycleの例:
2
11
5
10
9
7 8
3
Cycle
→依存関係を解決可能 →依存関係を解決できない
takemikami’s note	– http://takemikami.com/
ワークフロー動的生成の基本: トポロジカルソート
• トポロジカルソートとは、DAGの各nodeを
「どのnodeもその被依存nodeより前にあるように」並べること。
9Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
Apache	Airflowとは
ワークフローの動的生成に関する用語について整理します。
トポロジカルソートの結果:
・ 7,	5,	3,	11,	8,	2,	9,	10	(見た目において左から右、上から下への順)
・ 3,	5,	7,	8,	11,	2,	9,	10	(数値的に小さなノードを前に持ってくる)
・ 3,	7,	8,	5,	11,	10,	2,	9
・ 5,	7,	3,	8,	11,	10,	9,	2	(辺の数が少ないノードを前に持ってくる)
・ 7,	5,	11,	3,	10,	8,	9,	2	(辺の数が多いノードを前に持ってくる)
・ 7,	5,	11,	2,	3,	8,	9,	10
※Wikipediaから (	https://ja.wikipedia.org/wiki/トポロジカルソート )
7 5 3
11 8
2 9 10
takemikami’s note	– http://takemikami.com/
未実行のタスクのみを実行する仕組み
• Airflowでは依存関係・実行ログの情報を元に、
必要なタスクのみをスケジュールして実行出来る
10Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
Apache	Airflowとは
Airflowで未実行のタスクのみを実行する仕組みを説明します。
7 5 3
11 8
2 9 10
2のスケジュール: 9のスケジュール:
7 5 3
11 8
2 9 10
7 5 3
11 8
2 9 10
2の実行後:
→7,	5,	11の実行は不要
takemikami’s note	– http://takemikami.com/
いわゆるジョブ管理ツールとの違い
• もっとも大きな違いは、
「タスクの依存関係に基づいてワークフローを動的に生成」
• メリット:要求出力ごとのワークフローの定義が不要
→要求出力の変化が激しい処理に対応しやすい
※レポーティングや機械学習の前処理など
• デメリット:ワークフローを事前に計画しにくい
→処理完了時間の要求がシビアなものに適用しにくい
インフラのリソースプランニングが難しい
11Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
Apache	Airflowとは
WebSAM JobCenterやJP1などのジョブ管理ツールとの違いを説明します。
takemikami’s note	– http://takemikami.com/
類似ツールの紹介
• Spotify	luigi (python)
https://github.com/spotify/luigi
• Pinterest	Pinball	(python)
https://github.com/pinterest/pinball
• TresureData digdag (java)
https://github.com/treasure-data/digdag
• Rukawa (ruby)
https://github.com/joker1007/rukawa
• mario (sacala)
https://github.com/intentmedia/mario
12Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
Apache	Airflowとは
Airflowに似たツールの紹介です。
Airflowと同様の問題を解決する、類似ツールがいくつかあります。
takemikami’s note	– http://takemikami.com/Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved. 13
Apache	Airflowでのジョブ実行
• Airflowのセットアップ
• AirflowのUI
• DAGと依存関係の定義
• サンプルワークフローの実行
takemikami’s note	– http://takemikami.com/
Airflowのセットアップ
• Airflowは以下の流れでセットアップします。
※Pythonがセットアップ済みの前提です。(Python 3.5.2	::	Anaconda	4.1.1	(x86_64)で確認)
– インストール
– 作業ディレクトリの作成
– データベースの初期化
– UI起動
14Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
Apache	Airflowでのジョブ実行
Airflowのセットアップ手順を示します。
$	pip	install	airflow
$	mkdir ~/airflow_home &&	cd	$_
$	export	AIRFLOW_HOME=`pwd`
$	airflow	initdb
$	airflow	webserver	-p	8080
takemikami’s note	– http://takemikami.com/
AirflowのUI
15Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
Apache	Airflowでのジョブ実行
AirflowのUIを紹介します。
依存関係の定義一覧: DAG: 処理結果ツリー:
処理結果
ガントチャート:
takemikami’s note	– http://takemikami.com/
DAGの定義
• 以下の流れでDAGを定義します。
– DAG用ディレクトリの作成
– 「$AIRFLOW_HOME/dags/」配下にpythonでDAGを定義します
※dags配下をgitなどで管理しておくと便利
16Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
Apache	Airflowでのジョブ実行
DAGの定義方法を示します。
$	cd	$AIRFLOW_HOME
$	mkdir $AIRFLOW_HOME/dags
takemikami’s note	– http://takemikami.com/
シンプルな(単一タスクの)	DAGを定義
17Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
Apache	Airflowでのジョブ実行
シンプルなDAGの定義です。 ($AIRFLOW_HOME/dags/original_dag1.py)
from	builtins import	range
from	airflow.operators import	BashOperator,	DummyOperator
from	airflow.models import	DAG
from	datetime import	datetime,	timedelta
args =	{
'owner':	'airflow',
'start_date':	datetime.combine(datetime.today()	- timedelta(1),	datetime.min.time()),
}
dag	=	DAG(
dag_id='simple_dag',	default_args=args,
schedule_interval='0	0	*	*	*',
dagrun_timeout=timedelta(minutes=60))
last_task =	DummyOperator(task_id='last_task',	dag=dag)
if	__name__	==	"__main__":
dag.cli()
DAGの定義
タスクの定義
初期パラメータの定義
takemikami’s note	– http://takemikami.com/
依存関係の追加
18Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
Apache	Airflowでのジョブ実行
シンプルなDAGの定義です。 ($AIRFLOW_HOME/dags/original_dag2.py)
※省略※
last_task =	DummyOperator(task_id='last_task',	dag=dag)
before_task =	BashOperator(
task_id=’before_task',
bash_command='echo	before	task',
dag=dag)
last_task.set_upstream(before_task)
※省略※
• 先行タスクを追加し、依存関係を設定します
タスクの定義
依存関係の定義
DAG:
takemikami’s note	– http://takemikami.com/
サンプルワークフローの実行 1/3
19Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
Apache	Airflowでのジョブ実行
サンプルのワークフローを実行してみます。
• 以下のサンプル「example_bash_operator」を実行していきます
• 「runme_1」 3/1分の実行
DAG:
$	airflow	run	example_bash_operator runme_1	2017-03-01
takemikami’s note	– http://takemikami.com/
サンプルワークフローの実行 2/3
20Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
Apache	Airflowでのジョブ実行
サンプルのワークフローを実行してみます。
• 以下のように次々と実行していきます
$	airflow	run	example_bash_operator also_run_this 2017-03-02
$	airflow	run	example_bash_operator runme_1	2017-03-03
$	airflow	run	example_bash_operator runme_0	2017-03-04
結果のツリービュー:
実行したものが
処理済みになる
takemikami’s note	– http://takemikami.com/
サンプルワークフローの実行 2/3
21Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
Apache	Airflowでのジョブ実行
サンプルのワークフローを実行してみます。
• 3/1〜5の抜けているところを埋めるように実行します。
$	airflow	backfill	example_bash_operator -s	2017-03-01	-e	2017-03-05
結果のツリービュー:
実行前
歯抜け部分が
処理済みになる
takemikami’s note	– http://takemikami.com/Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved. 22
Apache	Airflowの利用シーン
• レポーティングでの利用イメージ
• 機械学習での利用イメージ
takemikami’s note	– http://takemikami.com/
追加部分
レポーティングでの利用イメージ
• レポート追加は「タスク追加」「依存関係追加」で
ワークフローを実現
23Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
Apache	Airflowの利用シーン
レポーティングでの適用イメージを示します。
広告費
集計
媒体商品別
広告費
広告効果
集計
広告効果
レポート
売上
商品原価
媒体B
広告費
媒体A
広告費
利益計算
商品別
利益
キャンペーン
効果集計
キャンペーン
効果レポート
キャンペーン
コスト
依存関係追加
タスク追加
takemikami’s note	– http://takemikami.com/
機械学習での利用イメージ 1/3
• 例えば、商品カテゴリ毎の購入商品点数で性別を予測したい。
– 特徴量(説明変数): 商品カテゴリ毎の購入商品点数
– 目的変数: 性別
24Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
Apache	Airflowの利用シーン
機械学習での適用イメージを示します。
性別 電化製品 キッチン
用品
ベビー用
品
アパレル カー用品 食品
男性 3 0 0 2 8 0
女性 0 5 5 0 0 0
? 3 1 0 1 1 4
? 1 0 0 0 0 8
目的変数 商品カテゴリ毎の購入商品点数
特徴量
takemikami’s note	– http://takemikami.com/
機械学習での利用イメージ 2/3
• 配達希望日も特徴に加えた方が予測精度が上がるのでは?
– 特徴量(説明変数): 商品カテゴリ毎の購入商品点数+配達希望日
– 目的変数: 性別
25Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
Apache	Airflowの利用シーン
機械学習での適用イメージを示します。
性別 電化製品 キッチン
用品
ベビー用
品
アパレル カー用品 食品 平日 休日
男性 3 0 0 2 8 0 0 9
女性 0 5 5 0 0 0 5 1
? 3 1 0 1 1 4 1 8
? 1 0 0 0 0 8 7 1
目的変数 商品カテゴリ毎の購入商品点数 配達希望日
特徴量
takemikami’s note	– http://takemikami.com/
追加部分
機械学習での利用イメージ 3/3
• 特徴量の追加もレポート追加同様に、
「タスク追加」「依存関係追加」で、動的にワークフローを生成
26Copyright	(C)	2017	Takeshi	Mikami.	All	rights	reserved.
Apache	Airflowの利用シーン
機械学習での適用イメージを示します。
売上
顧客
購入点数
集計
顧客別
購入点数
予測用
データ
予測用
データ集計 学習と予測
性別予測済み
顧客
配送
配達日
集計
顧客別
配達日数
依存関係追加タスク追加

More Related Content

PPTX
世界一わかりやすいClean Architecture
PDF
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
PDF
Airflowで真面目にjob管理
PDF
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
PPTX
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
PDF
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
PPTX
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
PDF
イミュータブルデータモデル(入門編)
世界一わかりやすいClean Architecture
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Airflowで真面目にjob管理
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
イミュータブルデータモデル(入門編)

What's hot (20)

PDF
AWS Black Belt Online Seminar 2016 AWS CloudFormation
PDF
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
PDF
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
PDF
AWSのログ管理ベストプラクティス
PDF
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
PDF
マルチテナントのアプリケーション実装〜実践編〜
PDF
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
PDF
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
PDF
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
PPTX
Azure API Management 俺的マニュアル
PDF
AWSではじめるMLOps
PDF
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
PDF
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
PDF
DockerとPodmanの比較
PDF
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
PPTX
Amazon Athena で実現する データ分析の広がり
PPTX
AWSで作る分析基盤
PDF
SolrとElasticsearchを比べてみよう
PDF
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
PDF
Javaのログ出力: 道具と考え方
AWS Black Belt Online Seminar 2016 AWS CloudFormation
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
AWSのログ管理ベストプラクティス
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
マルチテナントのアプリケーション実装〜実践編〜
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Azure API Management 俺的マニュアル
AWSではじめるMLOps
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
DockerとPodmanの比較
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
Amazon Athena で実現する データ分析の広がり
AWSで作る分析基盤
SolrとElasticsearchを比べてみよう
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
Javaのログ出力: 道具と考え方
Ad

Viewers also liked (7)

PDF
Azkaban
PDF
Jenkins 2.0 Pipeline & Blue Ocean
PDF
Apache Hbase バルクロードの使い方
PPTX
表参道.rb #19 / ただRailsで使われていないメソッドを削除したい人生だった
PDF
分散ワークフローエンジン『Digdag』の実装 at Tokyo RubyKaigi #11
PDF
Digdagによる大規模データ処理の自動化とエラー処理
PPTX
EmbulkとDigdagとデータ分析基盤と
Azkaban
Jenkins 2.0 Pipeline & Blue Ocean
Apache Hbase バルクロードの使い方
表参道.rb #19 / ただRailsで使われていないメソッドを削除したい人生だった
分散ワークフローエンジン『Digdag』の実装 at Tokyo RubyKaigi #11
Digdagによる大規模データ処理の自動化とエラー処理
EmbulkとDigdagとデータ分析基盤と
Ad

Similar to Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会) (8)

PDF
PyConAPAC2023 ワークフローエンジン Apache Airflowを用いた 大規模データパイプライン構築と改善
PDF
Airflowを広告データのワークフローエンジンとして運用してみた話
PDF
2018 builderscon airflowを用いて、 複雑大規模なジョブフロー管理 に立ち向かう
PDF
Prefectに関して imperfectに語る
PDF
Airflow 2.0 migration ガイド
PDF
AWS Lambda Updates
PPTX
StackStorm Workflowの設計
PDF
入門 Cloud Composer
PyConAPAC2023 ワークフローエンジン Apache Airflowを用いた 大規模データパイプライン構築と改善
Airflowを広告データのワークフローエンジンとして運用してみた話
2018 builderscon airflowを用いて、 複雑大規模なジョブフロー管理 に立ち向かう
Prefectに関して imperfectに語る
Airflow 2.0 migration ガイド
AWS Lambda Updates
StackStorm Workflowの設計
入門 Cloud Composer

More from Takeshi Mikami (20)

PDF
rdflintのvscode拡張の紹介とその実装方法
PDF
適切なクラスタ数を機械的に求める手法の紹介
PDF
OAuth 2.0による認可の流れ
PDF
MapReduceによるConnected Components(連結成分)の見つけ方
PDF
RDFチェックツール「rdflint」のご紹介 (LODチャレンジ2019受賞作品紹介 基盤技術部門優秀賞)
PDF
データサイエンスアイドル「小日向美穂」と考える「つながり」
PDF
RDFのチェックツール「rdflint」と コミュニティによるオープンデータの作成
PDF
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
PDF
GitHubの機能を活用したGitHub Flowによる開発の進め方
PDF
HBase CompleteBulkLoadその仕組み&発生した問題
PDF
RDFチェックツール「rdflint」のご紹介
PDF
アーリース情報技術株式会社 会社案内 (2019/02/13)
PDF
Spark MLlib ML Pipelines の概要 及びpysparkからの扱い方
PDF
SPARQL入門
PDF
センサーによるデータ計測と異常検知の基本
PDF
Webサイトのアクセスログによるユーザー属性推定
PDF
Google Cloud Dataflowによる データ変換処理入門
PDF
IoTでの機械学習活用イメージと強化学習のご紹介
PDF
協調フィルタリング・アソシエーション分析によるレコメンド手法の紹介
PDF
SparkMLlibで始めるビッグデータを対象とした機械学習入門
rdflintのvscode拡張の紹介とその実装方法
適切なクラスタ数を機械的に求める手法の紹介
OAuth 2.0による認可の流れ
MapReduceによるConnected Components(連結成分)の見つけ方
RDFチェックツール「rdflint」のご紹介 (LODチャレンジ2019受賞作品紹介 基盤技術部門優秀賞)
データサイエンスアイドル「小日向美穂」と考える「つながり」
RDFのチェックツール「rdflint」と コミュニティによるオープンデータの作成
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
GitHubの機能を活用したGitHub Flowによる開発の進め方
HBase CompleteBulkLoadその仕組み&発生した問題
RDFチェックツール「rdflint」のご紹介
アーリース情報技術株式会社 会社案内 (2019/02/13)
Spark MLlib ML Pipelines の概要 及びpysparkからの扱い方
SPARQL入門
センサーによるデータ計測と異常検知の基本
Webサイトのアクセスログによるユーザー属性推定
Google Cloud Dataflowによる データ変換処理入門
IoTでの機械学習活用イメージと強化学習のご紹介
協調フィルタリング・アソシエーション分析によるレコメンド手法の紹介
SparkMLlibで始めるビッグデータを対象とした機械学習入門

Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)