Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Unlocking the Future of Data Pipeline
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Lee Wei
September 04, 2025
290
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Unlocking the Future of Data Pipeline
Lee Wei
September 04, 2025
More Decks by Lee Wei
See All by Lee Wei
Orchestration Still Matters: Apache Airflow in the Age of AI
leew
0
74
Asset Partitions: Matching Workflow to the Right Data
leew
0
76
Your Al Is Only As Good As Your Data Pipeline
leew
0
31
觸發觸發器器,那個你可能不熟的 Apache Airflow 元件
leew
0
99
20251127 開源菜雞的隨意雜談
leew
0
62
住手啊,這樣用 Python 寫程式沒有人會獲得幸福的
leew
0
120
Hold on! You have a data team in PyCon Taiwan!
leew
0
69
朝聖之路
leew
0
150
20250328 Airflow 3.0 The First Glance
leew
0
460
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
エンジニアに許された特別な時間の終わり
watany
109
250k
From π to Pie charts
rasagy
1
380
Making Projects Easy
brettharned
120
6.8k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
440
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Heart Work Chapter 1 - Part 1
lfama
PRO
10
36k
Balancing Empowerment & Direction
lara
6
1.3k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Accessibility Awareness
sabderemane
1
220
Statistics for Hackers
jakevdp
799
230k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
Transcript
wei-lee.me Unlocking the Future of Data Pipeline Apache Airflow 3
wei-lee.me
wei-lee.me 🛝 Slide deck
wei-lee.me What to expect? • Intro to Airflow • What's
new in Airflow 3 • Migrate to Airflow 3
wei-lee.me Intro to Airflow
wei-lee.me What is Airflow An open-source platform to programmatically author,
schedule, and monitor workflows
wei-lee.me What is a workflow
wei-lee.me What is a workflow
wei-lee.me What is a workflow the programmatically part
wei-lee.me What is a workflow the programmatically part
wei-lee.me What is a workflow the programmatically part
wei-lee.me What is a workflow the programmatically part
wei-lee.me What is a workflow the programmatically part
wei-lee.me What is a workflow the programmatically part
wei-lee.me 12
wei-lee.me What is a Dag Dag == Workflow in Airflow
wei-lee.me What is a Dag Dag == Workflow in Airflow.
wei-lee.me If you ever heard of a DAG or directed
acyclic graph...
wei-lee.me
wei-lee.me Where do the tasks come from? Under the hook,
it's a PythonOperator.
wei-lee.me What are Operators Examples • EmailOperator • HttpOperator •
SQLExecuteQueryOperator • DockerOperator • HiveOperator • S3FileTransformOperator • PrestoToMySqlOperator • SlackAPIOperator • and etc.
wei-lee.me a template for a predefined task What are Operators
Definition
wei-lee.me What are Operators Lots and lots of operators "JSCZUF
"MJCBCB "NB[PO "QQSJTF "TBOB "SBOHP%# "QBDIF4QBSL "QBDIF1JOPU "QBDIF1JH "QBDIF-JWZ "QBDIF,ZMJO "QBDIF,BGLB "QBDIF)JWF "QBDIF)%'4 "QBDIF'MJOL "QBDIF%SVJE "QBDIF%SJMM "QBDIF$BTTBOESB "QBDIF#FBN %PDLFS %JTDPSE %JOHEJOH ECU %BUBEPH %BUBCSJDLT $PNNPO42- $PIFSF ,VCFSOFUFT $FMFSZ +JSB *#.$MPVEBOU )551 )BTIJDPSQ H31$ (PPHMF 'BDFCPPL '51 'BDFCPPL &YBTPM &MBTUJDTFBSDI 0QFO-JOFBHF 0QFO"* 0QFO'BB4 0%#$ /FPK .Z42- .POHP%# 8JO3. .442- 1431 .JDSPTPGU1PXFS4IFMM .JDSPTPGU"[VSF +FOLJOT +%#$ *."1 *OGMVY%# 1BQFSNJMM 1BHFSEVUZ 0SBDMF 0QTHFOJF 0QFO4FBSDI 4FHNFOU 4BNCB 4BMFTGPSDF 3FEJT 1SFTUP 1PTUHSF42- 1JOFDPOF 1H7FDUPS 5BCMFBV 5BCVMBS 44) 42-JUF 4OPXGMBLF 4.51 4MBDL 4JOHVMBSJUZ 4'51 4FOEHSJE 7FSUJDB 5SJOP 5FMFHSBN ;FOEFTL :BOEFY 8FBWJBUF 9
wei-lee.me Recap • Airflow → programatically orchestrating workflows • Dag
== Airflow Workflows → A bunch of tasks • Operator → template for a task
wei-lee.me What's new in Airflow 3
wei-lee.me Airflow Improvment Proposals • UI (AIP-38, AIP-79, AIP-84) •
Data Awareness (AIP-73, AIP-74, AIP-75) • External Event Driven (AIP-82) • Dag Versioning (AIP-63, AIP-64, AIP-65, AIP-66) • Task SDK (AIP-72) • Out of scope today (AIP-69, AIP-78, AIP-81, AIP-83)
wei-lee.me User Interface • AIP-38: Modern Web Application • AIP-79:
Remove Flask AppBuilder as Core dependency • AIP-84: UI REST API
wei-lee.me Airflow 1
wei-lee.me 10
wei-lee.me Airflow 2
wei-lee.me Everyone really has no taste. 11
wei-lee.me Airflow 3
wei-lee.me Airflow 3
wei-lee.me Under the hook • Rewrite the frontend using React
• Remove Flask AppBuilder from core • Redesign API endpoints using FastAPI (Get rid of the 6,000 lines views.py)
wei-lee.me Legacy views.py 😱
wei-lee.me Data Awareness • AIP-73 Expanded Data Awareness • AIP-74
Introducing Data Assets • AIP-75 New Asset-Centric Syntax • AIP-76 Asset Partitions (TODO)
wei-lee.me What if we have... • Team A: focus only
on training the model • Team B: using the models to generate a report • These 2 teams don't share code with each other
wei-lee.me
wei-lee.me The uri here is just an identifier
wei-lee.me
wei-lee.me
wei-lee.me @asset
wei-lee.me What if the 2 teams don't have access to
the same metacase (can't access the same asset)
wei-lee.me External Event Driven • AIP-82 External event driven scheduling
in Airflow
wei-lee.me
wei-lee.me
wei-lee.me More details on how these Asset things can be
used?
wei-lee.me Next sesion in the same room
wei-lee.me Dag Versioning • AIP-63: Dag Versioning • AIP-64: Keep
TaskInstance try history • AIP-65: Improve Dag history in UI • AIP-66: Dag Bundles & Parsing
wei-lee.me Dag versioning
wei-lee.me Dag versioning
wei-lee.me Dag versioning
wei-lee.me Dag versioning
wei-lee.me 17 v1 v2 v3 v4 v5
wei-lee.me Task SDK • AIP-72 Task Execution Interface aka Task
SDK
wei-lee.me
wei-lee.me
wei-lee.me
wei-lee.me
wei-lee.me
wei-lee.me Migrate to Airflow 3
wei-lee.me Never enjoyed being in a band. migrating Airflow 19
wei-lee.me Airflow Migration Tools
wei-lee.me But I still need to update lots of Dag
code 🫠
wei-lee.me Ruff AIR rules
wei-lee.me Ruff AIR Rules Best practices • AIR001 Task Variable
name should match task_id • AIR002 A Dag should have an explicit schedule argument
wei-lee.me Ruff AIR Rules Required changes for migrating to Airflow
3 • AIR301 Something removed in Airflow 3 • AIR302 Something moved from Ariflow core to Airflow provider in Airflow 3
wei-lee.me Ruff AIR Rules Suggested changes for migrating to Airflow
3 • AIR311 Similiar to AIR301, but it won't break your code for the time being (We added a backward-compatible layer) • AIR312 Similiar to AIR302, but it won't break your code for the time being
wei-lee.me How we migrate PyCon TW's airflow to airflow 3
wei-lee.me $ airflow db migrate Contributed back to Airflow
wei-lee.me $ airflow config lint
wei-lee.me $ uvx ruff check dags \ --preview \ --select=AIR3
\ --fix \ --unsafe-fixes
wei-lee.me Ruff AIR rocks 🚀
wei-lee.me It's almost like a miracle.
wei-lee.me More Ruff @ Airflow Summit 2025
wei-lee.me
wei-lee.me What's new in Airflow 3.1! • i18n (Taiwanese Mandarin
support!) • Human-in-the-loop (AIP-90) • go-sdk (part of AIP-72) • UI-plugins (AIP-68) • etc.
wei-lee.me Internationalization (i18n) 1.English 2.Arabic 3.Catalan 4.German 5.Spanish 6.French 7.Hebrew
8.Hindi 9.Hungarian 10.Korean 11.Dutch 12.Polish 13.Taiwanese Mandarin 14.Turkish
wei-lee.me
wei-lee.me A friend from the Taiwan community initiated it!
wei-lee.me I like to be the first, No.1
wei-lee.me Human-in-the-loop • AIP-90 Human in the loop
wei-lee.me Tasks awaiting human input
wei-lee.me go-sdk
wei-lee.me go-sdk/example/main.go
wei-lee.me
wei-lee.me UI plugins
wei-lee.me AIP-68 Extended Plugin Interface for React Views
wei-lee.me That's it.
wei-lee.me I want to join
wei-lee.me Let's contribute to Airflow
wei-lee.me Python Taiwan Discord Channel
wei-lee.me __name__ = 李唯 / Wei Lee __what_i_am_doing__ = [
Everywhere @ PyCon Taiwan, Member @ Python Asia Organization, Meme Bot @ OpenSource4You, Mentor @ OpenSource4You, Maintainer @ commitizen-tools, Committer @ Apache Airflow, Software Engineer @ Astronomer, ] __github__ = Lee-W __linkedin__ = clleew __site__ = https://wei-lee.me $ cat weilee.py
wei-lee.me File "weilee.py", line 1 __name__ = 李唯 / Wei
Lee ^^^ SyntaxError: invalid syntax $ 𝜋 thon weilee.py
wei-lee.me Stay Here for another great Airflow session!
wei-lee.me Join us for another Airflow discussion tomorrow @ 12:30!
wei-lee.me References • MIB • Fate/Zero • BanG Dream! It's
MyGO!!!!! • JOJO 的奇妙冒險 • JOJO 的奇妙冒險 黃 金 之風 • 地。-關於地球的運動
wei-lee.me Thanks for your time!
wei-lee.me I’m sure you have some questions on your mind
too.
wei-lee.me Q & A
wei-lee.me Q1: What's the cool editor you're using?
wei-lee.me
wei-lee.me Q & A