Skip to content
/ Addax Public

Addax is a versatile open-source ETL tool that can seamlessly transfer data between various RDBMS and NoSQL databases, making it an ideal solution for data migration.

License

Notifications You must be signed in to change notification settings

wgzhao/Addax

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Addax Logo

Addax

A versatile open-source ETL tool

Addax is an extensible ETL (Extract, Transform, Load) tool supporting over 20 SQL/NoSQL data sources, developed as a fork and evolution of Alibaba's DataX. It provides a growing ecosystem of plugins and offers easy-to-follow configuration for data integrations.

Release Version Maven Package

简体中文


🚀 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:


📦 Supported Data Sources

Addax supports a wide range of database systems and file sources. Below is a selection of supported platforms:

Cassandra Clickhouse DataBend IMB DB2
dBase Doris Elasticsearch Excel
Greenplum Apache HBase Hive InfluxDB
Kafka Kudu MinIO MongoDB
MySQL Oracle Phoenix PostgreSQL
Presto Redis Amazon S3 SQLite
SQLServer Starrocks Sybase TDengine
Trino Access SAP HANA Paimon

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

A lightweight -lite image is also available: Learn more.

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

For developers targeting custom-builds, compile and package Addax locally:

git clone https://github.com/wgzhao/addax.git addax
cd addax
mvn clean package
mvn package assembly:single

The compiled binary will be in target/datax/addax-<version>.

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 1.8+
  • Python Version: Python 2.7+ / 3.7+ (Windows only)

🧩 Developing Addax

Building Documentation

Generate or preview online documentation locally using mkdocs:

python3 -m pip install mkdocs-material
mkdocs build
mkdocs serve -a 0.0.0.0:8888

For publishing:

export version=4.1.5
git checkout $version
mike deploy -p $version

Code Style Guidelines

Follow general Java conventions and patterns:

  1. Use IntelliJ IDE with Airlift's Code Style
  2. Categorize exceptions clearly with AddaxException (e.g., AddaxException(REQUIRE_VALUE, "missing required parameter")).
  3. Use the Java 8 Stream API cautiously (avoid in performance-sensitive areas).
  4. Avoid ternary operators for non-trivial expressions.
  5. 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 segment are as follows:

  • z(Patch Version):

    • Bug fixes and performance improvements that do not affect compatibility with existing features.
    • Example: 1.2.3 → 1.2.4
  • y(Minor Version):

    • Introducing new features or module adjustments that could break backward compatibility.
    • Example: 1.2.3 → 1.3.0
  • x(Major Version):

    • Significant changes or new features that are often incompatible with previous versions.
    • Example: 1.3.0 → 2.0.0

🌟 Star History

Star History

Star History Chart

⚖️ License

This software is free to use under the Apache License 2.0.


💌 Special Thanks

Special thanks to JetBrains for providing open-source support to this project.