Skip to main content

OpenETL Logo

By DataOmni Solutions

dashboard_new

OpenETL is a robust and scalable ETL (Extract, Transform, Load) application built with modern technologies like FastAPI, Next.js, and Apache Spark. The application offers an intuitive, user-friendly interface that simplifies the ETL process, empowering users to effortlessly extract data from various sources, apply transformations, and load it into your desired target destinations.

Key Features of OpenETL:

  • Backend: Powered by Python 3.12 and FastAPI, ensuring fast and efficient data processing and API interactions.
  • Frontend: Built with Next.js, providing a smooth and interactive user experience.
  • Compute Engine: Apache Spark is integrated for distributed data processing, enabling scalable and high-performance operations.
  • Task Execution: Utilizes Celery to handle background task processing, ensuring reliable execution of long-running operations.
  • Scheduling: APScheduler is used to manage and schedule ETL jobs, allowing for automated workflows.

Features

  • ETL with Full Load: Easily extract data from different sources and load it into your preferred target location.
  • Scheduled Timing: Schedule your ETL tasks to run at specific intervals, ensuring your data is always up-to-date.
  • User Interface: A clean and user-friendly UI to monitor and control your ETL processes with ease.
  • Logging: Comprehensive logging to track every action, error, and data transformation throughout the ETL pipeline.
  • Integration History: Keep track of all your integration jobs with detailed records of past runs, including statuses and errors.
  • Batch Processing: Handle large volumes of data by processing it in batches for better efficiency.
  • Distributed Spark Computing: Utilize Spark for distributed computing, allowing you to process large datasets efficiently across multiple nodes.

Benchmark

Check the detailed performance benchmark of OpenETL here.


Getting Started

To get started with OpenETL, follow these steps:

Environment Variables

OpenETL relies on a .env file for configuration. Ensure the following variables are defined in your local .env file, and update them according to your environment:

1. Generate and set encryption key (do this once):

from cryptography.fernet import Fernet
key = Fernet.generate_key()
print(key.decode())  # Save this in your .env file as DB_ENCRYPTION_KEY
OPENETL_DOCUMENT_HOST=postgres
OPENETL_DOCUMENT_DB=openetl_db
OPENETL_DOCUMENT_SCHEMA=public
OPENETL_DOCUMENT_USER=openetl
OPENETL_DOCUMENT_PASS=openetl123
OPENETL_DOCUMENT_PORT=5432
OPENETL_DOCUMENT_ENGINE=PostgreSQL
OPENETL_HOME=/app
CELERY_BROKER_URL=redis://redis:6379/0
SPARK_MASTER=spark://spark-master:7077
SPARK_DRIVER_HOST=openetl-celery-worker-1
DB_ENCRYPTION_KEY=

Using Docker

  1. Ensure that you have Docker installed on your local machine.
  2. Clone this repository to your local environment.
  3. Open a terminal or command prompt and navigate to the project directory.
  4. Build the backend image by running the following command: 4.1
    docker compose up --build -d backend
    
  5. Launch the Docker container:
    docker compose up --build -d
    
  6. Open your web browser and visit http://localhost:3001 to access the OpenETL application.

After running successfully, the API documentation can be found at http://localhost:5009/docs, and the UI can be accessed at http://localhost:3001.

Need More?

OpenETL is a free application that offers a range of powerful features. However, if you're looking for advanced capabilities, we also offer Pro and an Enterprise version with additional features and customizations.

Features Comparison

Feature Basic Version Pro Version Enterprise Version
Free Full Load ETL ✅ Available ✅ Available ✅ Available
Scheduled Timing ✅ Available ✅ Available ✅ Available
User Interface (UI) ✅ Available ✅ Available ✅ Available
Logging ✅ Available ✅ Available ✅ Available
Integration History ✅ Available ✅ Available ✅ Available
Batches ✅ Available ✅ Available ✅ Available
Distributed Spark Computing (Configurable) ✅ Available ✅ Available ✅ Available
NaN Value Replacement Based on Data Type ✅ Available ✅ Available ✅ Available
Views (ID mapping and data attachment) ❌ Not Available ✅ Available ✅ Available
Support ❌ Not Available ✅ Available ✅ Available
Dedicated Machine for Running the App ❌ Not Available ✅ Available ✅ Available
Custom Schema Declarations ❌ Not Available ✅ Available ✅ Available
Python-Based Transformations ❌ Not Available ✅ Available ✅ Available
Permission-Based Users ❌ Not Available ✅ Available ✅ Available
Dtype Casting ❌ Not Available ✅ Available ✅ Available
Custom Development ❌ Not Available ❌ Not Available ✅ Available

If the features in the base version of OpenETL aren't quite cutting it for you, fear not! We're here to help. If you require additional functionality, customizations, or have specific requirements, reach out to us.

For more information, visit dataomnisolutions.com or contact us at sales.team@dataomnisolutions.com.

Support and Feedback

If you encounter any issues or have suggestions for improving OpenETL, please don't hesitate to open an issue in the GitHub repository. We greatly appreciate your feedback and are dedicated to enhancing the application based on user input. You can read the proper way to report issues in the Security Section.

License

This project is licensed under the Apache 2.0 License.

Thank you for choosing OpenETL! We hope it simplifies your ETL tasks and provides a seamless experience.

Metadata

Release files for openetl-sdk 0.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for openetl-sdk 0.0.4
File Size Uploaded
openetl_sdk-0.0.4.tar.gz 38.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for openetl-sdk 0.0.4
File Interpreter ABI Platform
openetl_sdk-0.0.4-py3-none-any.whl Python 3 none any Details

Total release size: 86.4 kB

Release files / openetl_sdk-0.0.4.tar.gz

Download URL openetl_sdk-0.0.4.tar.gz
Size 38.3 kB
Tags Source
SHA-256 checksum
How to use checksums
b82eb3fc9f57a41167bf30a578652644613e5deda5ba4cdef10c0d5e6b2645d7
BLAKE2b-256 checksum
How to use checksums
065afee1d84b80d7b06b2199d1c51db275114c0f8b7519623912bf174a7596f6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.2.1 CPython/3.12.11 Linux/6.11.0-1018-azure

Release files / openetl_sdk-0.0.4-py3-none-any.whl

Download URL openetl_sdk-0.0.4-py3-none-any.whl
Size 48.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b23c3a7e13a6a7ae0a9752d32456e83a7f0da4f2dc90b652c12cacd219f2882d
BLAKE2b-256 checksum
How to use checksums
e032616a59235bb45b4791212b2915bc9664f7ba4c9ae97f0cce6e3f7e0b3a1f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.2.1 CPython/3.12.11 Linux/6.11.0-1018-azure

Release history Release notifications | RSS feed

This release

0.0.4 This release

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page