2015-07-22 03:45:33 +03:00
# Airflow
2014-10-07 01:29:38 +04:00
2016-03-19 22:30:17 +03:00
[![PyPI version ](https://badge.fury.io/py/airflow.svg )](https://badge.fury.io/py/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
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 )]
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 )]
2016-08-12 03:55:46 +03:00
1. BlueApron [[@jasonjho ](https://github.com/jasonjho ) & [@matthewdavidhauser ](https://github.com/matthewdavidhauser )]
1. [Blue Yonder ](http://www.blue-yonder.com ) [[@blue-yonder ](https://github.com/blue-yonder )]
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 )]
2016-08-12 03:55:46 +03:00
1. Chartboost [[@cgelman ](https://github.com/cgelman ) & [@dclubb ](https://github.com/dclubb )]
1. [Cotap ](https://github.com/cotap/ ) [[@maraca ](https://github.com/maraca ) & [@richardchew ](https://github.com/richardchew )]
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 )]
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 )]
2016-08-23 05:43:23 +03:00
1. [Gusto ](https://gusto.com ) [[@frankhsu ](https://github.com/frankhsu )]
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 )]
1. [Holimetrix ](http://holimetrix.com/ ) [[@thibault-ketterer ](https://github.com/thibault-ketterer )]
1. [Hootsuite ](https://github.com/hootsuite )
2016-09-20 23:14:04 +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 )]
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 )]
1. [LendUp ](https://www.lendup.com/ ) [[@lendup ](https://github.com/lendup )]
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 )]
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 )]
2016-09-11 19:17:12 +03:00
1. [MFG Labs ](https://github.com/MfgLabs )
2016-08-12 03:55:46 +03:00
1. [Nerdwallet ](https://www.nerdwallet.com )
2016-09-30 01:45:36 +03:00
1. [OfferUp ](https://offerupnow.com )
2016-08-12 03:55:46 +03:00
1. [Postmates ](http://www.postmates.com ) [[@syeoryn ](https://github.com/syeoryn )]
1. [Qubole ](https://qubole.com ) [[@msumit ](https://github.com/msumit )]
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 )]
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-08-15 01:51:15 +03:00
1. Stripe [[@jbalogh ](https://github.com/jbalogh )]
2016-08-12 03:55:46 +03:00
1. [Thumbtack ](https://www.thumbtack.com/ ) [[@natekupp ](https://github.com/natekupp )]
2016-09-28 18:13:14 +03:00
1. [T2 Systems ](http://t2systems.com ) [[@unclaimedpants ](https://github.com/unclaimedpants )]
2016-08-31 07:04:03 +03:00
1. [Vente-Exclusive.com ](http://www.vente-exclusive.com/ ) [[@alexvanboxel ](https://github.com/alexvanboxel )]
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/ )
2016-08-12 03:55:46 +03:00
1. Wooga
1. Xoom [[@gepser ](https://github.com/gepser ) & [@omarvides ](https://github.com/omarvides )]
1. Yahoo!
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 )]
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 )