2015-07-22 03:45:33 +03:00
# Airflow
2014-10-07 01:29:38 +04:00
2017-05-09 23:14:50 +03:00
[![PyPI version ](https://badge.fury.io/py/apache-airflow.svg )](https://badge.fury.io/py/apache-airflow)
2016-05-15 02:26:38 +03:00
[![Build Status ](https://travis-ci.org/apache/incubator-airflow.svg )](https://travis-ci.org/apache/incubator-airflow)
2016-05-30 09:37:35 +03:00
[![Coverage Status ](https://img.shields.io/codecov/c/github/apache/incubator-airflow/master.svg )](https://codecov.io/github/apache/incubator-airflow?branch=master)
2016-05-15 02:26:38 +03:00
[![Code Health ](https://landscape.io/github/apache/incubator-airflow/master/landscape.svg?style=flat )](https://landscape.io/github/apache/incubator-airflow/master)
[![Requirements Status ](https://requires.io/github/apache/incubator-airflow/requirements.svg?branch=master )](https://requires.io/github/apache/incubator-airflow/requirements/?branch=master)
2016-03-23 08:29:12 +03:00
[![Documentation ](https://img.shields.io/badge/docs-pythonhosted-blue.svg )](http://pythonhosted.org/airflow/)
2016-05-15 02:26:38 +03:00
[![Join the chat at https://gitter.im/apache/incubator-airflow ](https://badges.gitter.im/apache/incubator-airflow.svg )](https://gitter.im/apache/incubator-airflow?utm_source=badge& utm_medium=badge& utm_campaign=pr-badge& utm_content=badge)
2015-10-21 21:11:22 +03:00
2017-05-09 23:14:50 +03:00
_NOTE: The transition from 1.8.0 (or before) to 1.8.1 (or after) requires uninstalling Airflow before installing the new version. The package name was changed from `airflow` to `apache-airflow` as of version 1.8.1._
2015-09-17 20:33:59 +03:00
Airflow is a platform to programmatically author, schedule and monitor
2015-09-15 01:53:34 +03:00
workflows.
2015-07-22 03:45:33 +03:00
2015-09-17 20:33:59 +03:00
When workflows are defined as code, they become more maintainable,
2015-08-19 18:51:30 +03:00
versionable, testable, and collaborative.
2016-03-29 17:37:51 +03:00
Use Airflow to author workflows as directed acyclic graphs (DAGs) of tasks.
The Airflow scheduler executes your tasks on an array of workers while
2015-09-17 20:33:59 +03:00
following the specified dependencies. Rich command line utilities make
performing complex surgeries on DAGs a snap. The rich user interface
makes it easy to visualize pipelines running in production,
2015-07-22 03:45:33 +03:00
monitor progress, and troubleshoot issues when needed.
2016-03-29 17:37:51 +03:00
## Getting started
Please visit the Airflow Platform documentation for help with [installing Airflow ](http://pythonhosted.org/airflow/installation.html ), getting a [quick start ](http://pythonhosted.org/airflow/start.html ), or a more complete [tutorial ](http://pythonhosted.org/airflow/tutorial.html ).
2016-04-28 04:42:45 +03:00
For further information, please visit the [Airflow Wiki ](https://cwiki.apache.org/confluence/display/AIRFLOW/Airflow+Home ).
2016-03-28 02:03:39 +03:00
2015-09-15 01:53:34 +03:00
## Beyond the Horizon
Airflow **is not** a data streaming solution. Tasks do not move data from
one to the other (though tasks can exchange metadata!). Airflow is not
2015-09-17 20:33:59 +03:00
in the [Spark Streaming ](http://spark.apache.org/streaming/ )
2015-09-15 01:53:34 +03:00
or [Storm ](https://storm.apache.org/ ) space, it is more comparable to
2015-09-17 20:33:59 +03:00
[Oozie ](http://oozie.apache.org/ ) or
2016-02-01 21:27:33 +03:00
[Azkaban ](https://azkaban.github.io/ ).
2015-09-15 01:53:34 +03:00
Workflows are expected to be mostly static or slowly changing. You can think
of the structure of the tasks in your workflow as slightly more dynamic
2015-09-17 20:33:59 +03:00
than a database structure would be. Airflow workflows are expected to look
similar from a run to the next, this allows for clarity around
2015-09-15 01:53:34 +03:00
unit of work and continuity.
2015-07-22 03:45:33 +03:00
## Principles
- **Dynamic**: Airflow pipelines are configuration as code (Python), allowing for dynamic pipeline generation. This allows for writing code that instantiates pipelines dynamically.
- **Extensible**: Easily define your own operators, executors and extend the library so that it fits the level of abstraction that suits your environment.
- **Elegant**: Airflow pipelines are lean and explicit. Parameterizing your scripts is built into the core of Airflow using the powerful **Jinja** templating engine.
- **Scalable**: Airflow has a modular architecture and uses a message queue to orchestrate an arbitrary number of workers. Airflow is ready to scale to infinity.
2016-03-19 23:29:17 +03:00
## User Interface
- **DAGs**: Overview of all DAGs in your environment.
![](/docs/img/dags.png)
- **Tree View**: Tree representation of a DAG that spans across time.
![](/docs/img/tree.png)
- **Graph View**: Visualization of a DAG's dependencies and their current status for a specific run.
![](/docs/img/graph.png)
- **Task Duration**: Total time spent on different tasks over time.
![](/docs/img/duration.png)
- **Gantt View**: Duration and overlap of a DAG.
![](/docs/img/gantt.png)
- **Code View**: Quick way to view source code of a DAG.
![](/docs/img/code.png)
2015-07-22 03:45:33 +03:00
## Who uses Airflow?
As the Airflow community grows, we'd like to keep track of who is using
2015-09-17 20:33:59 +03:00
the platform. Please send a PR with your company name and @githubhandle
2015-07-22 03:45:33 +03:00
if you may.
2016-03-04 21:44:59 +03:00
Committers:
2016-04-28 04:42:45 +03:00
* Refer to [Committers ](https://cwiki.apache.org/confluence/display/AIRFLOW/Committers )
2016-03-04 21:44:59 +03:00
2015-09-17 01:46:16 +03:00
Currently **officially** using Airflow:
2015-08-19 19:12:11 +03:00
2016-08-12 03:55:46 +03:00
1. [Airbnb ](http://airbnb.io/ ) [[@mistercrunch ](https://github.com/mistercrunch ), [@artwr ](https://github.com/artwr )]
2016-08-15 01:51:15 +03:00
1. [Agari ](https://github.com/agaridata ) [[@r39132 ](https://github.com/r39132 )]
2016-08-12 03:55:46 +03:00
1. [allegro.pl ](http://allegro.tech/ ) [[@kretes ](https://github.com/kretes )]
2016-09-22 04:44:59 +03:00
1. [AltX ](https://www.getaltx.com/about ) [[@pedromduarte ](https://github.com/pedromduarte )]
2016-08-20 01:04:45 +03:00
1. [Apigee ](https://apigee.com ) [[@btallman ](https://github.com/btallman )]
2017-07-12 00:11:14 +03:00
1. [ARGO Labs ](http://www.argolabs.org ) [[California Data Collaborative ](https://github.com/California-Data-Collaborative )]
2016-11-02 23:37:53 +03:00
1. [Astronomer ](http://www.astronomer.io ) [[@schnie ](https://github.com/schnie )]
2016-10-05 16:22:33 +03:00
1. [Auth0 ](https://auth0.com ) [[@sicarul ](https://github.com/sicarul )]
2016-10-27 21:48:16 +03:00
1. [BandwidthX ](http://www.bandwidthx.com ) [[@dineshdsharma ](https://github.com/dineshdsharma )]
2016-08-12 03:55:46 +03:00
1. [Bellhops ](https://github.com/bellhops )
2016-10-20 17:55:47 +03:00
1. [BlaBlaCar ](https://www.blablacar.com ) [[@puckel ](https://github.com/puckel ) & [@wmorin ](https://github.com/wmorin )]
2016-10-04 01:56:25 +03:00
1. [Bloc ](https://www.bloc.io ) [[@dpaola2 ](https://github.com/dpaola2 )]
2017-08-07 21:39:10 +03:00
1. [BlueApron ](https://www.blueapron.com ) [[@jasonjho ](https://github.com/jasonjho ) & [@matthewdavidhauser ](https://github.com/matthewdavidhauser )]
2016-08-12 03:55:46 +03:00
1. [Blue Yonder ](http://www.blue-yonder.com ) [[@blue-yonder ](https://github.com/blue-yonder )]
2016-11-23 20:58:12 +03:00
1. [Celect ](http://www.celect.com ) [[@superdosh ](https://github.com/superdosh ) & [@chadcelect ](https://github.com/chadcelect )]
2017-02-19 11:45:07 +03:00
1. [Change.org ](https://www.change.org ) [[@change ](https://github.com/change ), [@vijaykramesh ](https://github.com/vijaykramesh )]
2017-05-12 12:35:31 +03:00
1. [Checkr ](https://checkr.com ) [[@tongboh ](https://github.com/tongboh )]
2017-02-19 11:45:07 +03:00
1. [Children's Hospital of Philadelphia Division of Genomic Diagnostics ](http://www.chop.edu/centers-programs/division-genomic-diagnostics ) [[@genomics-geek]](https://github.com/genomics-geek/)
1. [City of San Diego ](http://sandiego.gov ) [[@MrMaksimize ](https://github.com/mrmaksimize ), [@andrell81 ](https://github.com/andrell81 ) & [@arnaudvedy ](https://github.com/arnaudvedy )]
2016-08-15 01:51:15 +03:00
1. [Clairvoyant ](https://clairvoyantsoft.com ) [@shekharv ](https://github.com/shekharv )
1. [Clover Health ](https://www.cloverhealth.com ) [[@gwax ](https://github.com/gwax ) & [@vansivallab ](https://github.com/vansivallab )]
2017-08-07 21:39:10 +03:00
1. [Chartboost ](https://www.chartboost.com ) [[@cgelman ](https://github.com/cgelman ) & [@dclubb ](https://github.com/dclubb )]
2016-08-12 03:55:46 +03:00
1. [Cotap ](https://github.com/cotap/ ) [[@maraca ](https://github.com/maraca ) & [@richardchew ](https://github.com/richardchew )]
2017-07-14 00:37:55 +03:00
1. [Credit Karma ](https://www.creditkarma.com/ ) [[@preete-dixit-ck ](https://github.com/preete-dixit-ck ) & [@harish-gaggar-ck ](https://github.com/harish-gaggar-ck ) & [@greg-finley-ck ](https://github.com/greg-finley-ck )]
2017-08-30 00:53:53 +03:00
1. [DataFox ](https://www.datafox.com/ ) [[@sudowork ](https://github.com/sudowork )]
2017-03-06 04:44:20 +03:00
1. [Digital First Media ](http://www.digitalfirstmedia.com/ ) [[@duffn ](https://github.com/duffn ) & [@mschmo ](https://github.com/mschmo ) & [@seanmuth ](https://github.com/seanmuth )]
2017-08-21 20:48:19 +03:00
1. [Drivy ](https://www.drivy.com ) [[@AntoineAugusti ](https://github.com/AntoineAugusti )]
2016-10-13 19:39:52 +03:00
1. [Easy Taxi ](http://www.easytaxi.com/ ) [[@caique-lima ](https://github.com/caique-lima ) & [@WesleyBatista ](https://github.com/WesleyBatista )]
2017-05-30 21:40:47 +03:00
1. [eRevalue ](https://www.datamaran.com ) [[@hamedhsn ](https://github.com/hamedhsn )]
2017-04-20 04:31:57 +03:00
1. [evo.company ](https://evo.company/ ) [[@orhideous ](https://github.com/orhideous )]
2016-08-12 03:55:46 +03:00
1. [FreshBooks ](https://github.com/freshbooks ) [[@DinoCow ](https://github.com/DinoCow )]
1. [Gentner Lab ](http://github.com/gentnerlab ) [[@neuromusic ](https://github.com/neuromusic )]
1. [Glassdoor ](https://github.com/Glassdoor ) [[@syvineckruyk ](https://github.com/syvineckruyk )]
2017-03-15 15:33:33 +03:00
1. [GovTech GDS ](https://gds-gov.tech ) [[@chrissng ](https://github.com/chrissng ) & [@datagovsg ](https://github.com/datagovsg )]
2017-08-21 20:48:19 +03:00
1. [Grand Rounds ](https://www.grandrounds.com/ ) [[@richddr ](https://github.com/richddr ), [@timz1290 ](https://github.com/timz1290 ) & [@wenever ](https://github.com/@wenever )]
2017-04-14 11:33:52 +03:00
1. [Groupalia ](http://es.groupalia.com ) [[@jesusfcr ](https://github.com/jesusfcr )]
2016-08-23 05:43:23 +03:00
1. [Gusto ](https://gusto.com ) [[@frankhsu ](https://github.com/frankhsu )]
2017-01-05 02:00:26 +03:00
1. [Handshake ](https://joinhandshake.com/ ) [[@mhickman ](https://github.com/mhickman )]
2016-08-12 03:55:46 +03:00
1. [Handy ](http://www.handy.com/careers/73115?gh_jid=73115&gh_src=o5qcxn ) [[@marcintustin ](https://github.com/marcintustin ) / [@mtustin-handy ](https://github.com/mtustin-handy )]
2017-04-09 16:01:39 +03:00
1. [HBO ](http://www.hbo.com/ )[[@yiwang ](https://github.com/yiwang )]
2016-11-15 19:00:25 +03:00
1. [HelloFresh ](https://www.hellofresh.com ) [[@tammymendt ](https://github.com/tammymendt ) & [@davidsbatista ](https://github.com/davidsbatista ) & [@iuriinedostup ](https://github.com/iuriinedostup )]
2016-08-12 03:55:46 +03:00
1. [Holimetrix ](http://holimetrix.com/ ) [[@thibault-ketterer ](https://github.com/thibault-ketterer )]
1. [Hootsuite ](https://github.com/hootsuite )
2016-11-17 03:26:01 +03:00
1. [IFTTT ](https://www.ifttt.com/ ) [[@apurvajoshi ](https://github.com/apurvajoshi )]
2016-08-17 21:30:40 +03:00
1. [iHeartRadio ](http://www.iheart.com/ )[[@yiwang ](https://github.com/yiwang )]
2017-07-11 21:31:25 +03:00
1. [imgix ](https://www.imgix.com/ ) [[@dclubb ](https://github.com/dclubb )]
2016-08-12 03:55:46 +03:00
1. [ING ](http://www.ing.com/ )
1. [Jampp ](https://github.com/jampp )
1. [Kiwi.com ](https://kiwi.com/ ) [[@underyx ](https://github.com/underyx )]
1. [Kogan.com ](https://github.com/kogan ) [[@geeknam ](https://github.com/geeknam )]
2016-12-20 16:28:32 +03:00
1. [Lemann Foundation ](http://fundacaolemann.org.br ) [[@fernandosjp ](https://github.com/fernandosjp )]
2016-08-12 03:55:46 +03:00
1. [LendUp ](https://www.lendup.com/ ) [[@lendup ](https://github.com/lendup )]
2017-06-23 05:31:25 +03:00
1. [LetsBonus ](http://www.letsbonus.com ) [[@jesusfcr ](https://github.com/jesusfcr ) & [@OpringaoDoTurno ](https://github.com/OpringaoDoTurno )]
2016-08-31 07:07:59 +03:00
1. [liligo ](http://liligo.com/ ) [[@tromika ](https://github.com/tromika )]
2016-08-12 03:55:46 +03:00
1. [LingoChamp ](http://www.liulishuo.com/ ) [[@haitaoyao ](https://github.com/haitaoyao )]
1. [Lucid ](http://luc.id ) [[@jbrownlucid ](https://github.com/jbrownlucid ) & [@kkourtchikov ](https://github.com/kkourtchikov )]
2016-11-17 03:26:01 +03:00
1. [Lumos Labs ](https://www.lumosity.com/ ) [[@rfroetscher ](https://github.com/rfroetscher/ ) & [@zzztimbo ](https://github.com/zzztimbo/ )]
2016-08-12 03:55:46 +03:00
1. [Lyft ](https://www.lyft.com/ )[[@SaurabhBajaj ](https://github.com/SaurabhBajaj )]
2016-11-03 08:33:41 +03:00
1. [Madrone ](http://madroneco.com/ ) [[@mbreining ](https://github.com/mbreining ) & [@scotthb ](https://github.com/scotthb )]
2016-09-01 21:09:36 +03:00
1. [Markovian ](https://markovian.com/ ) [[@al-xv ](https://github.com/al-xv ), [@skogsbaeck ](https://github.com/skogsbaeck ), [@waltherg ](https://github.com/waltherg )]
2017-01-13 22:00:55 +03:00
1. [Mercadoni ](https://www.mercadoni.com.co ) [[@demorenoc ](https://github.com/demorenoc )]
2017-07-14 01:07:05 +03:00
1. [Mercari ](http://www.mercari.com/ ) [[@yu-iskw ](https://github.com/yu-iskw )]
2017-03-16 23:18:28 +03:00
1. [MiNODES ](https://www.minodes.com ) [[@dice89 ](https://github.com/dice89 ), [@diazcelsa ](https://github.com/diazcelsa )]
2016-09-11 19:17:12 +03:00
1. [MFG Labs ](https://github.com/MfgLabs )
2017-03-06 04:37:31 +03:00
1. [mytaxi ](https://mytaxi.com ) [[@mytaxi ](https://github.com/mytaxi )]
2016-08-12 03:55:46 +03:00
1. [Nerdwallet ](https://www.nerdwallet.com )
2017-06-10 05:40:52 +03:00
1. [New Relic ](https://www.newrelic.com ) [[@marcweil ](https://github.com/marcweil )]
2017-08-30 07:01:07 +03:00
1. [Nextdoor ](https://nextdoor.com ) [[@SivaPandeti ](https://github.com/SivaPandeti ), [@zshapiro ](https://github.com/zshapiro ) & [@jthomas123 ](https://github.com/jthomas123 )]
2016-09-30 01:45:36 +03:00
1. [OfferUp ](https://offerupnow.com )
2016-12-22 04:20:51 +03:00
1. [OneFineStay ](https://www.onefinestay.com ) [[@slangwald ](https://github.com/slangwald )]
2017-02-09 23:05:28 +03:00
1. [Open Knowledge International ](https://okfn.org ) [@vitorbaptista ](https://github.com/vitorbaptista )
2017-06-21 10:18:16 +03:00
1. [Pandora Media ](https://www.pandora.com/ ) [[@Acehaidrey ](https://github.com/Acehaidrey )]
2017-01-13 22:08:26 +03:00
1. [PayPal ](https://www.paypal.com/ ) [[@jhsenjaliya ](https://github.com/jhsenjaliya )]
2016-08-12 03:55:46 +03:00
1. [Postmates ](http://www.postmates.com ) [[@syeoryn ](https://github.com/syeoryn )]
2017-05-12 12:53:14 +03:00
1. [Pronto Tools ](http://www.prontotools.io/ ) [[@zkan ](https://github.com/zkan ) & [@mesodiar ](https://github.com/mesodiar )]
2016-08-12 03:55:46 +03:00
1. [Qubole ](https://qubole.com ) [[@msumit ](https://github.com/msumit )]
2017-05-16 11:27:37 +03:00
1. [Quora ](https://www.quora.com/ )
2017-05-04 23:19:24 +03:00
1. [Robinhood ](https://robinhood.com ) [[@vineet-rh ](https://github.com/vineet-rh )]
2016-08-17 21:32:28 +03:00
1. [Scaleway ](https://scaleway.com ) [[@kdeldycke ](https://github.com/kdeldycke )]
2016-08-12 03:55:46 +03:00
1. [Sense360 ](https://github.com/Sense360 ) [[@kamilmroczek ](https://github.com/KamilMroczek )]
2016-12-28 23:32:03 +03:00
1. [Shopkick ](https://shopkick.com/ ) [[@shopkick ](https://github.com/shopkick )]
2016-08-12 03:55:46 +03:00
1. [Sidecar ](https://hello.getsidecar.com/ ) [[@getsidecar ](https://github.com/getsidecar )]
1. [SimilarWeb ](https://www.similarweb.com/ ) [[@similarweb ](https://github.com/similarweb )]
1. [SmartNews ](https://www.smartnews.com/ ) [[@takus ](https://github.com/takus )]
2016-10-26 20:25:18 +03:00
1. [Spotify ](https://github.com/spotify ) [[@znichols ](https://github.com/znichols )]
2016-11-15 21:14:46 +03:00
1. [Stackspace ](https://beta.stackspace.io/ )
2017-08-07 21:39:10 +03:00
1. [Stripe ](https://stripe.com ) [[@jbalogh ](https://github.com/jbalogh )]
2017-04-28 23:10:23 +03:00
1. [Tails.com ](https://tails.com/ ) [[@alanmcruickshank ](https://github.com/alanmcruickshank )]
2016-08-12 03:55:46 +03:00
1. [Thumbtack ](https://www.thumbtack.com/ ) [[@natekupp ](https://github.com/natekupp )]
2017-05-16 11:27:37 +03:00
1. [Tictail ](https://tictail.com/ )
2016-09-28 18:13:14 +03:00
1. [T2 Systems ](http://t2systems.com ) [[@unclaimedpants ](https://github.com/unclaimedpants )]
2017-05-30 21:58:51 +03:00
1. [United Airlines ](https://www.united.com/ ) [[@ilopezfr ](https://github.com/ilopezfr )]
2016-08-31 07:04:03 +03:00
1. [Vente-Exclusive.com ](http://www.vente-exclusive.com/ ) [[@alexvanboxel ](https://github.com/alexvanboxel )]
2016-12-31 22:05:41 +03:00
1. [Vnomics ](https://github.com/vnomics ) [[@lpalum ](https://github.com/lpalum )]
2016-08-15 01:51:15 +03:00
1. [WePay ](http://www.wepay.com ) [[@criccomini ](https://github.com/criccomini ) & [@mtagle ](https://github.com/mtagle )]
2016-08-12 03:55:46 +03:00
1. [WeTransfer ](https://github.com/WeTransfer ) [[@jochem ](https://github.com/jochem )]
2016-08-20 02:38:37 +03:00
1. [Whistle Labs ](http://www.whistle.com ) [[@ananya77041 ](https://github.com/ananya77041 )]
2016-10-01 04:54:01 +03:00
1. [WiseBanyan ](https://wisebanyan.com/ )
2017-08-07 21:39:10 +03:00
1. [Wooga ](https://www.wooga.com/ )
1. [Xoom ](https://www.xoom.com/india/send-money ) [[@gepser ](https://github.com/gepser ) & [@omarvides ](https://github.com/omarvides )]
1. [Yahoo! ](https://www.yahoo.com/ )
2016-08-15 01:51:15 +03:00
1. [Zapier ](https://www.zapier.com ) [[@drknexus ](https://github.com/drknexus ) & [@statwonk ](https://github.com/statwonk )]
2016-08-12 03:55:46 +03:00
1. [Zendesk ](https://www.github.com/zendesk )
2016-08-19 10:10:57 +03:00
1. [Zenly ](https://zen.ly ) [[@cerisier ](https://github.com/cerisier ) & [@jbdalido ](https://github.com/jbdalido )]
2017-08-30 07:05:00 +03:00
1. [Zymergen ](https://www.zymergen.com/ )
2016-09-20 21:18:49 +03:00
1. [99 ](https://99taxis.com ) [[@fbenevides ](https://github.com/fbenevides ), [@gustavoamigo ](https://github.com/gustavoamigo ) & [@mmmaia ](https://github.com/mmmaia )]
2015-07-22 04:02:15 +03:00
2015-09-17 20:33:59 +03:00
## Links
2015-07-22 04:02:15 +03:00
2016-09-01 12:59:33 +03:00
2016-07-29 01:32:55 +03:00
* [Documentation ](http://airflow.incubator.apache.org/ )
* [Chat ](https://gitter.im/apache/incubator-airflow )
2016-09-01 12:59:33 +03:00
* [Apache Airflow Incubation Status ](http://incubator.apache.org/projects/airflow.html )
2016-07-29 01:32:55 +03:00
* [More ](https://cwiki.apache.org/confluence/display/AIRFLOW/Airflow+Links )