WA

wgzhao/addax

数据库管理
1418 stars 质量 47 趋势 47

Actively maintained fork of Alibaba DataX — a fast, versatile ETL tool for RDBMS/NoSQL data transfer

概览

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. - 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. Detailed instructions on installation, configuration, and usage are available: Addax supports a wide range of database systems and file sources. Below is a selection of supported platforms: Addax can be quickly installed and used via Docker, installation scripts, or compiled from source. Pull the prebuilt Docker image and run a test job: Installation paths: /usr/local (macOS), /opt/addax/ (Linux).

README

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.

简体中文


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

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)

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

  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


⚖️ 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.

View this README on GitHub

推荐工具

换一个关键词,或者移除筛选条件。

安装

npx skillfish add wgzhao/addax