Mage is a tool for building and deploying data pipelines.
Project description
🧙 A modern replacement for Airflow.
Documentation 🌪️ Watch 2 min demo 🌊 Play with live tool 🔥 Get instant help
Give your data team magical
powers
Integrate and synchronize data from 3rd party sources
Build real-time and batch pipelines to transform data using Python, SQL, and R
Run, monitor, and orchestrate thousands of pipelines without losing sleep
1️⃣ 🏗️
Build
Have you met anyone who said they loved developing in Airflow?
That’s why we designed an easy developer experience that you’ll enjoy.
Easy developer experience Start developing locally with a single command or launch a dev environment in your cloud using Terraform. Language of choice Write code in Python, SQL, or R in the same data pipeline for ultimate flexibility. Engineering best practices built-in Each step in your pipeline is a standalone file containing modular code that’s reusable and testable with data validations. No more DAGs with spaghetti code. |
↓
2️⃣ 🔮
Preview
Stop wasting time waiting around for your DAGs to finish testing.
Get instant feedback from your code each time you run it.
Interactive code Immediately see results from your code’s output with an interactive notebook UI. Data is a first-class citizen Each block of code in your pipeline produces data that can be versioned, partitioned, and cataloged for future use. Collaborate on cloud Develop collaboratively on cloud resources, version control with Git, and test pipelines without waiting for an available shared staging environment. |
↓
3️⃣ 🚀
Launch
Don’t have a large team dedicated to Airflow?
Mage makes it easy for a single developer or small team to scale up and manage thousands of pipelines.
Fast deploy Deploy Mage to AWS, GCP, or Azure with only 2 commands using maintained Terraform templates. Scaling made simple Transform very large datasets directly in your data warehouse or through a native integration with Spark. Observability Operationalize your pipelines with built-in monitoring, alerting, and observability through an intuitive UI. |
🧙 Intro
Mage is an open-source data pipeline tool for transforming and integrating data.
- Quick start
- Demo
- Tutorials
- Documentation
- Features
- Core design principles
- Core abstractions
- Contributing
🏃♀️ Quick start
You can install and run Mage using Docker (recommended), pip
, or conda
.
Install using Docker
-
Create a new project and launch tool (change
demo_project
to any other name if you want):docker run -it -p 6789:6789 -v $(pwd):/home/src mageai/mageai \ /app/run_app.sh mage start demo_project
- If you want to run Mage locally on a different port, change the first port after
-p
in the command above. For example, to change the port to6790
, run:
docker run -it -p 6790:6789 -v $(pwd):/home/src mageai/mageai \ /app/run_app.sh mage start demo_project
Want to use Spark or other integrations? Read more about integrations.
- If you want to run Mage locally on a different port, change the first port after
-
Open http://localhost:6789 in your browser and build a pipeline.
- If you changed the Docker port for running Mage locally, go to the url
http://127.0.0.1:[port]
(e.g. http://127.0.0.1:6790) in your browser to view the pipelines dashboard.
Using pip
or conda
-
Install Mage
(a) To the current virtual environment:
pip install mage-ai
or
conda install -c conda-forge mage-ai
(b) To a new virtual environment (e.g.,
myenv
):python3 -m venv myenv source myenv/bin/activate pip install mage-ai
or
conda create -n myenv -c conda-forge mage-ai conda activate myenv
For additional packages (e.g.
spark
,postgres
, etc), please see Installing extra packages.If you run into errors, please see Install errors.
-
Create new project and launch tool (change
demo_project
to any other name if you want):mage start demo_project
-
Open http://localhost:6789 in your browser and build a pipeline.
🎮 Demo
Live demo
Build and run a data pipeline with our demo app.
WARNING
The live demo is public to everyone, please don’t save anything sensitive (e.g. passwords, secrets, etc).
Demo video (2 min)
Click the image to play video
👩🏫 Tutorials
- Load data from API, transform it, and export it to PostgreSQL
- Integrate Mage into an existing Airflow project
- Train model on Titanic dataset
- Set up DBT models and orchestrate DBT runs
🔮 Features
🎶 | Orchestration | Schedule and manage data pipelines with observability. |
📓 | Notebook | Interactive Python, SQL, & R editor for coding data pipelines. |
🏗️ | Data integrations | Synchronize data from 3rd party sources to your internal destinations. |
🚰 | Streaming pipelines | Ingest and transform real-time data. |
❎ | DBT | Build, run, and manage your DBT models with Mage. |
A sample data pipeline defined across 3 files ➝
- Load data ➝
@data_loader def load_csv_from_file(): return pd.read_csv('default_repo/titanic.csv')
- Transform data ➝
@transformer def select_columns_from_df(df, *args): return df[['Age', 'Fare', 'Survived']]
- Export data ➝
@data_exporter def export_titanic_data_to_disk(df) -> None: df.to_csv('default_repo/titanic_transformed.csv')
What the data pipeline looks like in the UI ➝
New? We recommend reading about blocks and learning from a hands-on tutorial.
🏔️ Core design principles
Every user experience and technical design decision adheres to these principles.
💻 | Easy developer experience | Open-source engine that comes with a custom notebook UI for building data pipelines. |
🚢 | Engineering best practices built-in | Build and deploy data pipelines using modular code. No more writing throwaway code or trying to turn notebooks into scripts. |
💳 | Data is a first-class citizen | Designed from the ground up specifically for running data-intensive workflows. |
🪐 | Scaling is made simple | Analyze and process large data quickly for rapid iteration. |
🛸 Core abstractions
These are the fundamental concepts that Mage uses to operate.
Project | Like a repository on GitHub; this is where you write all your code. |
Pipeline | Contains references to all the blocks of code you want to run, charts for visualizing data, and organizes the dependency between each block of code. |
Block | A file with code that can be executed independently or within a pipeline. |
Data product | Every block produces data after it's been executed. These are called data products in Mage. |
Trigger | A set of instructions that determine when or how a pipeline should run. |
Run | Stores information about when it was started, its status, when it was completed, any runtime variables used in the execution of the pipeline or block, etc. |
🙋♀️ Contributing and developing
Add features and instantly improve the experience for everyone.
Check out the contributing guide to setup your development environment and start building.
👨👩👧👦 Community
Individually, we’re a mage.
🧙 Mage
Magic is indistinguishable from advanced technology. A mage is someone who uses magic (aka advanced technology). Together, we’re Magers!
🧙♂️🧙 Magers (
/ˈmājər/
)A group of mages who help each other realize their full potential! Let’s hang out and chat together ➝
For real-time news, fun memes, data engineering topics, and more, join us on ➝
GitHub | |
Slack |
🤔 Frequently Asked Questions (FAQs)
Check out our FAQ page to find answers to some of our most asked questions.
🪪 License
See the LICENSE file for licensing information.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file mage-ai-0.8.64.tar.gz
.
File metadata
- Download URL: mage-ai-0.8.64.tar.gz
- Upload date:
- Size: 6.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f2348454070777b2f22e9e72d4119045a78a86a2bacce659bce98ec30f7668ca |
|
MD5 | 3b8cd31d5b6309de6821c0c5cca4ba1b |
|
BLAKE2b-256 | 9b725f6035d807a247f8e93142c5654461a020001e66eac9e16f1e2995c3dded |
File details
Details for the file mage_ai-0.8.64-py3-none-any.whl
.
File metadata
- Download URL: mage_ai-0.8.64-py3-none-any.whl
- Upload date:
- Size: 7.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 39f766546858d4a698f9679851afd78e66319e9dacbfa21aa09361e5b4ac127e |
|
MD5 | f62027634d0d695e8527ade2d592574b |
|
BLAKE2b-256 | 4ad09ba3d2c2b58411e2695237f5303dedb91e891cc2012c3729dbd7f0b53e64 |