Addax
A versatile open-source ETL tool
Addax is an extensible ETL (Extract, Transform, Load) tool supporting over 20 SQL/NoSQL data sources, forked from Alibaba's DataX, which has been frozen since 2023 — Addax is its actively maintained successor. It provides a growing ecosystem of plugins and offers easy-to-follow configuration for data integrations.
🚀 Features
- Supports 20+ SQL and NoSQL data sources, and easily extendable for more.
- Configurable via simple JSON-based job descriptions.
- Actively maintained with improved architecture and added functionality compared to DataX.
- Docker images for quick deployment.
📚 Documentation
Detailed instructions on installation, configuration, and usage are available:
💚 Project Status
Addax is actively maintained. The project is in a mature maintenance phase by design:
- Monthly maintenance releases. A new release ships roughly every month (see Releases), bundling dependency/CVE updates and bug fixes — even when there are no new features to announce.
- Responsive issue triage. Open issues are typically answered and resolved within days, not months.
- Stable by intent. Plugin functionality is deliberately kept stable: we fix bugs and update dependencies rather than chasing feature churn. New data-source plugins are added when there is real community demand — if you need one, open an issue.
- Open to contribution. PRs are reviewed continuously. See CONTRIBUTING.md for how to contribute.
For maintainers, the release process is documented in RELEASING.md.
📦 Supported Data Sources
Addax supports a wide range of database systems and file sources. Below is a selection of supported platforms:
See the full list of supported data sources.
🛠️ Getting Started
Addax can be quickly installed and used via Docker, installation scripts, or compiled from source.
1. Use docker image
Pull the prebuilt Docker image and run a test job:
docker pull quay.io/wgzhao/addax:latest
docker run -ti --rm --name addax \
quay.io/wgzhao/addax:latest \
/opt/addax/bin/addax.sh /opt/addax/job/job.json
2. Use installation script
Install Addax with a single command:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/wgzhao/Addax/master/install.sh)"
Installation paths: /usr/local (macOS), /opt/addax/ (Linux).
3. Compile and Package from Source
- Java Compiler: JDK 17
For developers aiming to create custom-builds, compile and package Addax locally:
git clone https://github.com/wgzhao/addax.git addax
cd addax
export MAVEN_OPTS="-DskipTests -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -Dgpg.skip=true"
mvn clean package
mvn package -Pdistribution
The compiled binary will be in target/addax-.
4. Run Your First Task
Load sample job configuration and test the setup:
bin/addax.sh job/job.json
Explore more example jobs
📖 Runtime Requirements
- Java Runtime: JDK 17
- Python Version: Python 2.7+ / 3.7+ (Windows only)
🔗 Related Projects
- addax-admin - A web-based management tool for administering Addax data collection tasks
- addax-docs - Comprehensive documentation for Addax, including user guides and API references
🧩 Developing Addax
For AI assistants: project-specific knowledge and conventions are documented in SKILL.md. Please read it before working on this repo.
Code Style Guidelines
Follow general Java conventions and patterns:
- Use IntelliJ IDE with Airlift's Code Style
- Categorize exceptions clearly with AddaxException (e.g.,
AddaxException(REQUIRE_VALUE, "missing required parameter")). - Use the Java 8 Stream API cautiously (avoid in performance-sensitive areas).
- Avoid ternary operators for non-trivial expressions.
- Include proper Apache License headers in every file.
Refer to our Programming Guidelines for commit message formats.
🗓️ Versioning Scheme
This project adheres to the Semantic Versioning (SemVer) standard with the format x.y.z. The meanings of each seg