SlideShare une entreprise Scribd logo
1  sur  21
© 2022 NTT DATA Corporation
Apache Airflow 概要
@Airflowの基礎を学ぶハンズオンワークショップ
2022年10月29日
株式会社NTTデータ
関 堅吾
© 2022 NTT DATA Corporation 2
自己紹介
• 株式会社NTTデータ所属のデータエンジニア・OSS開発者
• Apache Hadoop・Apache Spark といった、並列分散処理 OSS を用いたデータ基盤の導入や開発・運用を支援
• Apache Airflow のコミッタ・PMC (プロジェクトマネジメント委員会) メンバー
• その他、データエンジニアリング関係のいくつかの OSS プロジェクトのコミッタを務める
© 2022 NTT DATA Corporation 3
https://oss.nttdata.com/
© 2022 NTT DATA Corporation 4
1. Airflow の概要と歴史
2. Airflow の要素と構成
3. まとめ
© 2022 NTT DATA Corporation 5
01
Airflow の概要と歴史
© 2022 NTT DATA Corporation 6
Apache Airflow (以下 Airflow) とは何か
• 一般に「ジョブスケジューラ」や「ワークフローエンジン」と呼ばれる種類のソフトウェア
• 参考: Wikipedia による「ジョブ管理システム」の説明
• 大雑把に言うと、「複数の処理の依存関係(ワークフロー)を定義し、それらを定められたタイミングで実行するもの」
• 類似の製品やサービスの例 (†は Airflow ベースのサービス)
• OSS: Argo Workflows, Dagster, DigDag, Apache Nifi
• SaaS: Astronomer†, Prefect
• クラウドサービス:
• Amazon Managed Workflows for Apache Airflow (MWAA)†, AWS Step Functions
• Azure Data Factory, Azure Logic Apps
• Google Cloud Composer†, Google Cloud Workflows
• 商用製品: JP1 (日立), Systemwalker (富士通), Hinemos (NTTデータ, OSS) など
© 2022 NTT DATA Corporation 7
Airflow の歴史
• Apache ソフトウェア財団 (Apache Software Foundation, 以下 ASF) 傘下で OSS として開発されている
• 以下, 2022/10 時点の最新バージョンである 2.4.2 に基づいて説明
Maxime Beauchemin によって, Airbnb で開発開始
Incubator project として ASF に寄贈
ASF の TLP (top level project) に昇格
バージョン 2.0 リリース
2014年 2016年 2019年 2020年 現在 (2022年)
2022/10 時点での contributor 数 2,230 名以上、コミット件数 17,800 以上,
GitHub stars は 28,000 以上
© 2022 NTT DATA Corporation 8
他のワークフローエンジンと比べた場合の Airflow の特徴と長所・短所 (発表者の主観で)
特徴 長所 短所
処理内容や、それらの間の
依存関係を Python で記述
・記述の自由度や可読性が高く、
バージョン管理システムとの相性も良い
・プログラミングが不得手な場合は利用しづらい
モダンな Web UI を提供 ・Web UIが見やすく使いやすい
・RBACなど、複数のユーザや組織での利用も考慮
(※RBAC: Role-based Access Control)
・ワークフローの編集機能は提供しない
・表示言語は英語のみ
複数のコンポーネントから成る
システム構成
・要件に応じて、信頼性の高い構成を採ることが可能
- システム上の主要な構成要素は、すべてHA化
もしくはスケールアウト可能
- 公式 Helm Chart を使って Kubernetes 上に
配備すれば、障害復旧の一部を k8s の
self-healing 機能に任せられる
・コンポーネントごとに無駄のないサイジングが可能
・構成が複雑なので、導入や運用が大変
- とはいえ、試すだけなら `airflow standalone`
コマンドで単一サーバ上で実行可能
- また、Kubernetes上に導入する場合は
公式 Helm Chart を使えば、コマンド一発で
インストール・アップグレード可能
コミュニティ主導の開発体制 ・開発やバグ修正の速度が速い
・Web 上の情報も豊富
・込み入ったトラブルに遭遇した場合は、ソースコードの
読解や管理DBの手動更新などが必要になる可能性
その他 ・他の製品と連携するための provider が豊富に提供
されており、多彩な製品・サービスと連携可能
・多くの商用製品が提供する機能であっても、
備えていないものがある
- ジョブネット中の特定のジョブで実行を保留する機能
- DAG versioning (ワークフローの形状が変わっても、
矛盾なく過去の実行結果などを参照できる機能) など
© 2022 NTT DATA Corporation 9
02
Airflow の要素と構成
© 2022 NTT DATA Corporation 10
ワークフローの定義における主な要素
Task 間の依存関係
Operator: ワークフロー内で実行される
個々の処理のテンプレート
Task: Operator に必要な情報(IDや
実行するコマンドなど)を与えてインスタンス
化したもの
DAG: 実行するワークフロー全体を、
Task間の依存関係として定義したもの
© 2022 NTT DATA Corporation 11
Operator の種類 (一部)
Airflow における処理実行の主体。主に以下の2種類に分けられる。
• 処理実行
• BashOperator: bash コマンドを実行
• PythonOperator: python 関数を実行
• その他、多数のソフトウェアや外部サービスと連携するための operator が存在
• 条件分岐
• BranchPythonOperator: 条件に従い、後続の task のいずれかを実行する
• ShortCircuitOperator: 処理の結果に応じて、後続の task を skip する
• BranchDayOfWeekOperator: 曜日に応じて処理を分岐する。曜日は複数指定可能
• BranchDateTimeOperator: 特定の期間だけ処理を分岐
© 2022 NTT DATA Corporation 12
ワークフローの実行における主な要素
DAG Run, Task Instance: それぞれ, DAG・Task の1回1回の実行を表す
© 2022 NTT DATA Corporation 13
ワークフローの実行間隔の指定方法
• start_date, schedule (と、必要であれば end_date) という DAG パラメータで、開始日時と実行間隔 (と終了日時) を指定する
• バージョン 2.3 以前は schedule_interval と timetable という2つのパラメータだったものが、バージョン 2.4 から schedule に統合された
• start_date は logical date (後述) の起点を表すため、初回の DAG Run は (start_date + scheduleで指定された間隔) 後に実行
されることに注意
• schedule は処理対象となるデータの間隔 (data interval) を表し、以下の4通りの形式で指定可能
• cron 書式の文字列 (例: 毎日0:00に実行するなら "0 0 * * *")
• Python の datetime.timedelta オブジェクト
• @once, @hourly, @daily, @weekly, @monthly など既定の文字列
• Airflow の Timetable オブジェクト
• DAG の実行タイミングに紐づいた日時を logical date (旧称 execution date) と呼び、Python コード中に Jinja 記法で埋め込むことができる
• 定期実行の場合、実際に実行される日時から schedule 分遡った日時が logical date となることに注意
• なお DAG は単発で実行することもでき、その場合は実際の実行日時が logical date となる。
※図は『Data Pipelines with Apache Airflow』(Bas Harenslak & Julian de Ruiter, Manning, 2021)より、改変して引用
Start date
2022-01-01
00:00
2022-01-02
00:00
2022-01-03
00:00
2022-01-04
00:00
End date まで実行
(指定した場合)
現在日時
Previous logical date Logical date
(= data_interval_start)
Next logical date
(= data_interval_end)
Data interval
© 2022 NTT DATA Corporation 14
システム構成
https://airflow.apache.org/docs/apache-airflow/stable/concepts/overview.html より引用
Scheduler: 定期的にDAG directoryを
読み込み, DAG を最新化するとともに、実行
時刻が到来した DAG の実行を Executor
に指示するプロセス。
Executor: Scheduler の一部として実行
される, task instance を実行するための仕
組み。
WebServer: ユーザに GUI を提供する
Web サーバ. Metadata Database の
内容をグラフィカルに表示するとともに, DAG
の有効・無効の切り替えや実行なども受け
付ける。
Metadata Database: DAG や Task の
実行状態や結果, ユーザや RBAC の設定,
Connection の定義, XCom の値など,
Airflow のあらゆる情報が格納されている DB.
SQLite, MySQL, PostgreSQL, Microsoft
SQL Server がサポートされている (SQLite
は本番環境での利用は推奨されていない).
Triggerer (図中では省略):Deferrable
Operator を実行するために, scheduler とは
独立して動作するプロセス。本機能を使わない
場合は不要。
© 2022 NTT DATA Corporation 15
Executor の種類
• SequentialExecutor: SQLite と組み合わせて使える唯一の Executor. Task instance を1件ずつ処理する。
本番での利用は非推奨 (動作確認のために存在).
• LocalExecutor: scheduler と同一マシン内で worker プロセスを起動. parallelism パラメータで指定した数まで
task instance を同時に実行できる。
• CeleryExecutor: Python 製のタスクキューである Celery を介して, scheduler 外のサーバに task instance の
実行を指示できる。
• Celery の backend として, RabbitMQ や Redis などの導入が必要
• Worker は何台でも立ち上げてスケールアウト可能
• KubernetesExecutor: Kubernetes 上に起動した worker pod 内で task instance を実行する。
• LocalKubernetesExecutor, CeleryKubernetesExecutor: それぞれ, LocalExecutor や CeleryExecutor
と KubernetesExecutor を併用できる。
© 2022 NTT DATA Corporation 16
その他の要素: Connections
• 連携するサービスへの接続情報を, connection として metadata DB に登録できる
• CLI からは airflow connections サブコマンドで参照・追加・削除が可能
© 2022 NTT DATA Corporation 17
その他の要素: Variables
• DAG内からグローバルに参照可能な変数を, variable として metadata DB に登録できる
• CLI からは airflow variables サブコマンドで参照・追加・削除が可能
© 2022 NTT DATA Corporation 18
その他の要素: XCom
• Task 間でデータを受け渡すための仕組み
• 以下のデータが XCom として Metadata DB に登録され、後続の task から参照可能になる
• BashOperator: stdout に出力した文字列の最終行
• PythonOperator: 実行した Python 関数の戻り値
• 後続の task では, TaskInstance オブジェクトのメソッド xcom_pull に受け渡し元の task_id を指定して呼ぶことで
XCom の値を参照できる. TaskInstance オブジェクトへのアクセス方法は以下の通り。
• BashOperator: 実行するコマンド中で Jinja テンプレートを使って ti もしくは task_instance を参照
• PythonOperator: 実行する Python 関数のキーワード引数として渡される値 (context) から ti もしくは
task_instance を参照
© 2022 NTT DATA Corporation 19
03
まとめ
© 2022 NTT DATA Corporation 20
まとめ
• Apache Airflow は ASF 傘下で OSS として開発されているワークフローエンジン
• Pythonによるワークフローの定義、充実した Web UI, 柔軟なシステム構成が可能なコンポーネント群、多彩な外部の製品
やサービスとの連携、コミュニティ主導による活発な開発体制、などに特徴
• ワークフローの定義における主な要素
• DAG, Task, Operator
• ワークフローの実行における主な要素
• DAG Run, Task Instance
• Start date, Schedule, End date
• Logical date, Data interval
• システム構成の主な要素
• Meta Database
• Scheduler/Executor
• Worker
• WebServer
© 2022 NTT DATA Corporation
本資料に記載されている会社名、商品名、又は
サービス名は、各社の登録商標又は商標です。

Contenu connexe

Tendances

Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)NTT DATA Technology & Innovation
 
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)NTT DATA Technology & Innovation
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
 
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)Trainocate Japan, Ltd.
 
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...NTT DATA Technology & Innovation
 
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)NTT DATA Technology & Innovation
 
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...NTT DATA Technology & Innovation
 
忙しい人の5分で分かるMesos入門 - Mesos って何だ?
忙しい人の5分で分かるMesos入門 - Mesos って何だ?忙しい人の5分で分かるMesos入門 - Mesos って何だ?
忙しい人の5分で分かるMesos入門 - Mesos って何だ?Masahito Zembutsu
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドAkihiro Suda
 
PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報Masahiko Sawada
 
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアルAzure API Management 俺的マニュアル
Azure API Management 俺的マニュアル貴志 上坂
 
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)NTT DATA Technology & Innovation
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Kohei Tokunaga
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -onozaty
 
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)NTT DATA Technology & Innovation
 

Tendances (20)

Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
 
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
 
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
 
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
 
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
 
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
 
忙しい人の5分で分かるMesos入門 - Mesos って何だ?
忙しい人の5分で分かるMesos入門 - Mesos って何だ?忙しい人の5分で分かるMesos入門 - Mesos って何だ?
忙しい人の5分で分かるMesos入門 - Mesos って何だ?
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
 
PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報
 
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアルAzure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
 
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)
 
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
 
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
AlloyDBを触ってみた!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
 

Similaire à Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)

Prometheus超基礎公開用.pdf
Prometheus超基礎公開用.pdfPrometheus超基礎公開用.pdf
Prometheus超基礎公開用.pdf勇 黒沢
 
20181120 HowtoFlow
20181120 HowtoFlow20181120 HowtoFlow
20181120 HowtoFlowTomoyuki Obi
 
Operator reading and writing ( Operator SDK 編 )
Operator reading and writing ( Operator SDK 編 )Operator reading and writing ( Operator SDK 編 )
Operator reading and writing ( Operator SDK 編 )ロフト くん
 
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)NTT DATA Technology & Innovation
 
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)NTT DATA Technology & Innovation
 
Osc fukuoka xAI Meetup
Osc fukuoka xAI MeetupOsc fukuoka xAI Meetup
Osc fukuoka xAI Meetupru pic
 
Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018Uemura Yuichi
 
Open Shift v3 主要機能と内部構造のご紹介
Open Shift v3 主要機能と内部構造のご紹介Open Shift v3 主要機能と内部構造のご紹介
Open Shift v3 主要機能と内部構造のご紹介Etsuji Nakai
 
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]日本マイクロソフト株式会社
 
cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうけるcf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうけるTakeshi Morikawa
 
20130714 July Tech Festa 日本CloudStackユーザー会
20130714 July Tech Festa 日本CloudStackユーザー会20130714 July Tech Festa 日本CloudStackユーザー会
20130714 July Tech Festa 日本CloudStackユーザー会samemoon
 
ASP.NET Core WebAPIでODataを使おう
ASP.NET Core WebAPIでODataを使おうASP.NET Core WebAPIでODataを使おう
ASP.NET Core WebAPIでODataを使おうDevTakas
 
PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...
PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...
PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...NTT DATA Technology & Innovation
 
Start SQL Server with Docker
Start SQL Server with DockerStart SQL Server with Docker
Start SQL Server with DockerOshitari_kochi
 
A07_ビジネス イノベーションを強力に支援する Azure Red Hat OpenShift のススメ [Microsoft Japan Digita...
A07_ビジネス イノベーションを強力に支援する Azure Red Hat OpenShift のススメ [Microsoft Japan Digita...A07_ビジネス イノベーションを強力に支援する Azure Red Hat OpenShift のススメ [Microsoft Japan Digita...
A07_ビジネス イノベーションを強力に支援する Azure Red Hat OpenShift のススメ [Microsoft Japan Digita...日本マイクロソフト株式会社
 
Cloudera World Tokyo 2015 Oracleセッション資料 「ビッグデータ/IoTの最新事例とHadoop活用の勘所」
Cloudera World Tokyo 2015 Oracleセッション資料 「ビッグデータ/IoTの最新事例とHadoop活用の勘所」Cloudera World Tokyo 2015 Oracleセッション資料 「ビッグデータ/IoTの最新事例とHadoop活用の勘所」
Cloudera World Tokyo 2015 Oracleセッション資料 「ビッグデータ/IoTの最新事例とHadoop活用の勘所」オラクルエンジニア通信
 
C11,12 SQL Server 2012 Performance Tuning by Yukio Kumazawa
C11,12 SQL Server 2012 Performance Tuning by Yukio KumazawaC11,12 SQL Server 2012 Performance Tuning by Yukio Kumazawa
C11,12 SQL Server 2012 Performance Tuning by Yukio KumazawaInsight Technology, Inc.
 

Similaire à Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料) (20)

Prometheus超基礎公開用.pdf
Prometheus超基礎公開用.pdfPrometheus超基礎公開用.pdf
Prometheus超基礎公開用.pdf
 
20181120 HowtoFlow
20181120 HowtoFlow20181120 HowtoFlow
20181120 HowtoFlow
 
Operator reading and writing ( Operator SDK 編 )
Operator reading and writing ( Operator SDK 編 )Operator reading and writing ( Operator SDK 編 )
Operator reading and writing ( Operator SDK 編 )
 
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
 
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
 
Open Source x AI
Open Source x AIOpen Source x AI
Open Source x AI
 
Osc fukuoka xAI Meetup
Osc fukuoka xAI MeetupOsc fukuoka xAI Meetup
Osc fukuoka xAI Meetup
 
Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018
 
Open Shift v3 主要機能と内部構造のご紹介
Open Shift v3 主要機能と内部構造のご紹介Open Shift v3 主要機能と内部構造のご紹介
Open Shift v3 主要機能と内部構造のご紹介
 
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]
 
cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうけるcf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
 
20130714 July Tech Festa 日本CloudStackユーザー会
20130714 July Tech Festa 日本CloudStackユーザー会20130714 July Tech Festa 日本CloudStackユーザー会
20130714 July Tech Festa 日本CloudStackユーザー会
 
ASP.NET Core WebAPIでODataを使おう
ASP.NET Core WebAPIでODataを使おうASP.NET Core WebAPIでODataを使おう
ASP.NET Core WebAPIでODataを使おう
 
PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...
PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...
PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...
 
PostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラPostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラ
 
Start SQL Server with Docker
Start SQL Server with DockerStart SQL Server with Docker
Start SQL Server with Docker
 
A07_ビジネス イノベーションを強力に支援する Azure Red Hat OpenShift のススメ [Microsoft Japan Digita...
A07_ビジネス イノベーションを強力に支援する Azure Red Hat OpenShift のススメ [Microsoft Japan Digita...A07_ビジネス イノベーションを強力に支援する Azure Red Hat OpenShift のススメ [Microsoft Japan Digita...
A07_ビジネス イノベーションを強力に支援する Azure Red Hat OpenShift のススメ [Microsoft Japan Digita...
 
PostgreSQL 12の話
PostgreSQL 12の話PostgreSQL 12の話
PostgreSQL 12の話
 
Cloudera World Tokyo 2015 Oracleセッション資料 「ビッグデータ/IoTの最新事例とHadoop活用の勘所」
Cloudera World Tokyo 2015 Oracleセッション資料 「ビッグデータ/IoTの最新事例とHadoop活用の勘所」Cloudera World Tokyo 2015 Oracleセッション資料 「ビッグデータ/IoTの最新事例とHadoop活用の勘所」
Cloudera World Tokyo 2015 Oracleセッション資料 「ビッグデータ/IoTの最新事例とHadoop活用の勘所」
 
C11,12 SQL Server 2012 Performance Tuning by Yukio Kumazawa
C11,12 SQL Server 2012 Performance Tuning by Yukio KumazawaC11,12 SQL Server 2012 Performance Tuning by Yukio Kumazawa
C11,12 SQL Server 2012 Performance Tuning by Yukio Kumazawa
 

Plus de NTT DATA Technology & Innovation

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)NTT DATA Technology & Innovation
 
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方NTT DATA Technology & Innovation
 
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...NTT DATA Technology & Innovation
 
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)NTT DATA Technology & Innovation
 
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)NTT DATA Technology & Innovation
 
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...NTT DATA Technology & Innovation
 
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
 
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
 
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
 
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...NTT DATA Technology & Innovation
 
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)NTT DATA Technology & Innovation
 
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)NTT DATA Technology & Innovation
 
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...NTT DATA Technology & Innovation
 
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)NTT DATA Technology & Innovation
 
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)NTT DATA Technology & Innovation
 
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 

Plus de NTT DATA Technology & Innovation (20)

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
 
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
 
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
 
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
 
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
 
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
 
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
 
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
 
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
 
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
 
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
 
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
 
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
 
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
 
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
 
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
 
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
 

Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)

  • 1. © 2022 NTT DATA Corporation Apache Airflow 概要 @Airflowの基礎を学ぶハンズオンワークショップ 2022年10月29日 株式会社NTTデータ 関 堅吾
  • 2. © 2022 NTT DATA Corporation 2 自己紹介 • 株式会社NTTデータ所属のデータエンジニア・OSS開発者 • Apache Hadoop・Apache Spark といった、並列分散処理 OSS を用いたデータ基盤の導入や開発・運用を支援 • Apache Airflow のコミッタ・PMC (プロジェクトマネジメント委員会) メンバー • その他、データエンジニアリング関係のいくつかの OSS プロジェクトのコミッタを務める
  • 3. © 2022 NTT DATA Corporation 3 https://oss.nttdata.com/
  • 4. © 2022 NTT DATA Corporation 4 1. Airflow の概要と歴史 2. Airflow の要素と構成 3. まとめ
  • 5. © 2022 NTT DATA Corporation 5 01 Airflow の概要と歴史
  • 6. © 2022 NTT DATA Corporation 6 Apache Airflow (以下 Airflow) とは何か • 一般に「ジョブスケジューラ」や「ワークフローエンジン」と呼ばれる種類のソフトウェア • 参考: Wikipedia による「ジョブ管理システム」の説明 • 大雑把に言うと、「複数の処理の依存関係(ワークフロー)を定義し、それらを定められたタイミングで実行するもの」 • 類似の製品やサービスの例 (†は Airflow ベースのサービス) • OSS: Argo Workflows, Dagster, DigDag, Apache Nifi • SaaS: Astronomer†, Prefect • クラウドサービス: • Amazon Managed Workflows for Apache Airflow (MWAA)†, AWS Step Functions • Azure Data Factory, Azure Logic Apps • Google Cloud Composer†, Google Cloud Workflows • 商用製品: JP1 (日立), Systemwalker (富士通), Hinemos (NTTデータ, OSS) など
  • 7. © 2022 NTT DATA Corporation 7 Airflow の歴史 • Apache ソフトウェア財団 (Apache Software Foundation, 以下 ASF) 傘下で OSS として開発されている • 以下, 2022/10 時点の最新バージョンである 2.4.2 に基づいて説明 Maxime Beauchemin によって, Airbnb で開発開始 Incubator project として ASF に寄贈 ASF の TLP (top level project) に昇格 バージョン 2.0 リリース 2014年 2016年 2019年 2020年 現在 (2022年) 2022/10 時点での contributor 数 2,230 名以上、コミット件数 17,800 以上, GitHub stars は 28,000 以上
  • 8. © 2022 NTT DATA Corporation 8 他のワークフローエンジンと比べた場合の Airflow の特徴と長所・短所 (発表者の主観で) 特徴 長所 短所 処理内容や、それらの間の 依存関係を Python で記述 ・記述の自由度や可読性が高く、 バージョン管理システムとの相性も良い ・プログラミングが不得手な場合は利用しづらい モダンな Web UI を提供 ・Web UIが見やすく使いやすい ・RBACなど、複数のユーザや組織での利用も考慮 (※RBAC: Role-based Access Control) ・ワークフローの編集機能は提供しない ・表示言語は英語のみ 複数のコンポーネントから成る システム構成 ・要件に応じて、信頼性の高い構成を採ることが可能 - システム上の主要な構成要素は、すべてHA化 もしくはスケールアウト可能 - 公式 Helm Chart を使って Kubernetes 上に 配備すれば、障害復旧の一部を k8s の self-healing 機能に任せられる ・コンポーネントごとに無駄のないサイジングが可能 ・構成が複雑なので、導入や運用が大変 - とはいえ、試すだけなら `airflow standalone` コマンドで単一サーバ上で実行可能 - また、Kubernetes上に導入する場合は 公式 Helm Chart を使えば、コマンド一発で インストール・アップグレード可能 コミュニティ主導の開発体制 ・開発やバグ修正の速度が速い ・Web 上の情報も豊富 ・込み入ったトラブルに遭遇した場合は、ソースコードの 読解や管理DBの手動更新などが必要になる可能性 その他 ・他の製品と連携するための provider が豊富に提供 されており、多彩な製品・サービスと連携可能 ・多くの商用製品が提供する機能であっても、 備えていないものがある - ジョブネット中の特定のジョブで実行を保留する機能 - DAG versioning (ワークフローの形状が変わっても、 矛盾なく過去の実行結果などを参照できる機能) など
  • 9. © 2022 NTT DATA Corporation 9 02 Airflow の要素と構成
  • 10. © 2022 NTT DATA Corporation 10 ワークフローの定義における主な要素 Task 間の依存関係 Operator: ワークフロー内で実行される 個々の処理のテンプレート Task: Operator に必要な情報(IDや 実行するコマンドなど)を与えてインスタンス 化したもの DAG: 実行するワークフロー全体を、 Task間の依存関係として定義したもの
  • 11. © 2022 NTT DATA Corporation 11 Operator の種類 (一部) Airflow における処理実行の主体。主に以下の2種類に分けられる。 • 処理実行 • BashOperator: bash コマンドを実行 • PythonOperator: python 関数を実行 • その他、多数のソフトウェアや外部サービスと連携するための operator が存在 • 条件分岐 • BranchPythonOperator: 条件に従い、後続の task のいずれかを実行する • ShortCircuitOperator: 処理の結果に応じて、後続の task を skip する • BranchDayOfWeekOperator: 曜日に応じて処理を分岐する。曜日は複数指定可能 • BranchDateTimeOperator: 特定の期間だけ処理を分岐
  • 12. © 2022 NTT DATA Corporation 12 ワークフローの実行における主な要素 DAG Run, Task Instance: それぞれ, DAG・Task の1回1回の実行を表す
  • 13. © 2022 NTT DATA Corporation 13 ワークフローの実行間隔の指定方法 • start_date, schedule (と、必要であれば end_date) という DAG パラメータで、開始日時と実行間隔 (と終了日時) を指定する • バージョン 2.3 以前は schedule_interval と timetable という2つのパラメータだったものが、バージョン 2.4 から schedule に統合された • start_date は logical date (後述) の起点を表すため、初回の DAG Run は (start_date + scheduleで指定された間隔) 後に実行 されることに注意 • schedule は処理対象となるデータの間隔 (data interval) を表し、以下の4通りの形式で指定可能 • cron 書式の文字列 (例: 毎日0:00に実行するなら "0 0 * * *") • Python の datetime.timedelta オブジェクト • @once, @hourly, @daily, @weekly, @monthly など既定の文字列 • Airflow の Timetable オブジェクト • DAG の実行タイミングに紐づいた日時を logical date (旧称 execution date) と呼び、Python コード中に Jinja 記法で埋め込むことができる • 定期実行の場合、実際に実行される日時から schedule 分遡った日時が logical date となることに注意 • なお DAG は単発で実行することもでき、その場合は実際の実行日時が logical date となる。 ※図は『Data Pipelines with Apache Airflow』(Bas Harenslak & Julian de Ruiter, Manning, 2021)より、改変して引用 Start date 2022-01-01 00:00 2022-01-02 00:00 2022-01-03 00:00 2022-01-04 00:00 End date まで実行 (指定した場合) 現在日時 Previous logical date Logical date (= data_interval_start) Next logical date (= data_interval_end) Data interval
  • 14. © 2022 NTT DATA Corporation 14 システム構成 https://airflow.apache.org/docs/apache-airflow/stable/concepts/overview.html より引用 Scheduler: 定期的にDAG directoryを 読み込み, DAG を最新化するとともに、実行 時刻が到来した DAG の実行を Executor に指示するプロセス。 Executor: Scheduler の一部として実行 される, task instance を実行するための仕 組み。 WebServer: ユーザに GUI を提供する Web サーバ. Metadata Database の 内容をグラフィカルに表示するとともに, DAG の有効・無効の切り替えや実行なども受け 付ける。 Metadata Database: DAG や Task の 実行状態や結果, ユーザや RBAC の設定, Connection の定義, XCom の値など, Airflow のあらゆる情報が格納されている DB. SQLite, MySQL, PostgreSQL, Microsoft SQL Server がサポートされている (SQLite は本番環境での利用は推奨されていない). Triggerer (図中では省略):Deferrable Operator を実行するために, scheduler とは 独立して動作するプロセス。本機能を使わない 場合は不要。
  • 15. © 2022 NTT DATA Corporation 15 Executor の種類 • SequentialExecutor: SQLite と組み合わせて使える唯一の Executor. Task instance を1件ずつ処理する。 本番での利用は非推奨 (動作確認のために存在). • LocalExecutor: scheduler と同一マシン内で worker プロセスを起動. parallelism パラメータで指定した数まで task instance を同時に実行できる。 • CeleryExecutor: Python 製のタスクキューである Celery を介して, scheduler 外のサーバに task instance の 実行を指示できる。 • Celery の backend として, RabbitMQ や Redis などの導入が必要 • Worker は何台でも立ち上げてスケールアウト可能 • KubernetesExecutor: Kubernetes 上に起動した worker pod 内で task instance を実行する。 • LocalKubernetesExecutor, CeleryKubernetesExecutor: それぞれ, LocalExecutor や CeleryExecutor と KubernetesExecutor を併用できる。
  • 16. © 2022 NTT DATA Corporation 16 その他の要素: Connections • 連携するサービスへの接続情報を, connection として metadata DB に登録できる • CLI からは airflow connections サブコマンドで参照・追加・削除が可能
  • 17. © 2022 NTT DATA Corporation 17 その他の要素: Variables • DAG内からグローバルに参照可能な変数を, variable として metadata DB に登録できる • CLI からは airflow variables サブコマンドで参照・追加・削除が可能
  • 18. © 2022 NTT DATA Corporation 18 その他の要素: XCom • Task 間でデータを受け渡すための仕組み • 以下のデータが XCom として Metadata DB に登録され、後続の task から参照可能になる • BashOperator: stdout に出力した文字列の最終行 • PythonOperator: 実行した Python 関数の戻り値 • 後続の task では, TaskInstance オブジェクトのメソッド xcom_pull に受け渡し元の task_id を指定して呼ぶことで XCom の値を参照できる. TaskInstance オブジェクトへのアクセス方法は以下の通り。 • BashOperator: 実行するコマンド中で Jinja テンプレートを使って ti もしくは task_instance を参照 • PythonOperator: 実行する Python 関数のキーワード引数として渡される値 (context) から ti もしくは task_instance を参照
  • 19. © 2022 NTT DATA Corporation 19 03 まとめ
  • 20. © 2022 NTT DATA Corporation 20 まとめ • Apache Airflow は ASF 傘下で OSS として開発されているワークフローエンジン • Pythonによるワークフローの定義、充実した Web UI, 柔軟なシステム構成が可能なコンポーネント群、多彩な外部の製品 やサービスとの連携、コミュニティ主導による活発な開発体制、などに特徴 • ワークフローの定義における主な要素 • DAG, Task, Operator • ワークフローの実行における主な要素 • DAG Run, Task Instance • Start date, Schedule, End date • Logical date, Data interval • システム構成の主な要素 • Meta Database • Scheduler/Executor • Worker • WebServer
  • 21. © 2022 NTT DATA Corporation 本資料に記載されている会社名、商品名、又は サービス名は、各社の登録商標又は商標です。