A Go-based toolset for data extraction, transformation, and loading, providing powerful data synchronization capabilities.
go-etl is a comprehensive ETL (Extract, Transform, Load) toolset and data synchronization framework written in Go. It provides a robust, plugin-based architecture for efficiently moving and processing data between various sources and destinations, including relational databases and unstructured data streams like CSV and Excel files. It solves the problem of offline data synchronization across heterogeneous systems.
Data engineers and backend developers who need to build or run batch data synchronization pipelines, particularly those working in environments with multiple database types or requiring a DataX-like framework in Go.
Developers choose go-etl for its extensive multi-database support, its familiar DataX-like framework design which simplifies plugin development, and its flexible deployment options including binary, Docker, and source. Its plugin-based architecture abstracts data source complexities, promoting reusability and easier integration.
go-etl is a toolset for data extraction, transformation and loading.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports extraction and loading from multiple relational databases including MySQL, PostgreSQL, Oracle, SQL Server, DB2, SQLite, and Dameng, as detailed in the README table, covering most enterprise use cases.
Uses a DataX-like architecture that abstracts readers and writers into plugins, making it easy to develop custom components for new data sources, as described in the datax module documentation.
Enables batch synchronization of multiple tables using a wizard CSV file to define source-target pairs, streamlining bulk data transfers with a single command, as shown in the batch sync section.
Offers binaries for Linux and Windows, Docker images, and source code compilation, catering to various deployment environments without vendor lock-in, as outlined in the quick start guide.
For databases like sqlite3, DB2, and Oracle, users must manually install ODBC drivers and configure environment variables, as noted in the Docker setup, adding overhead compared to plug-and-play solutions.
Primarily focuses on traditional relational databases and file formats (CSV/XLSX), lacking built-in support for NoSQL databases, streaming platforms, or cloud-native APIs, which may require custom plugin development.
Documentation is split across multiple files (e.g., plugin-specific READMEs, separate user manual), which can make it harder for new users to find comprehensive, centralized guidance quickly.
go-etl is an open-source alternative to the following products: