Lightweight ETL for Java

Scriptella runs SQL and other scripts against multiple data sources from one XML file. Open source. No visual designer, application server, or proprietary runtime.

copy-customers.etl.xml

<!DOCTYPE etl SYSTEM
  "http://scriptella.org/dtd/etl.dtd">
<etl>
  <connection id="source" url="jdbc:h2:./source"/>
  <connection id="target" url="jdbc:h2:./target"/>

  <query connection-id="source">
    SELECT id, name FROM customer
    <script connection-id="target">
      INSERT INTO customer VALUES (?id, ?name)
    </script>
  </query>
</etl>

SQL for the work. XML for the wiring.

Scriptella is an open source ETL and script execution tool written in Java. Use SQL or the language that fits the data source. XML only orchestrates.

Multiple sources, one file

Work with JDBC, CSV, text, XML, LDAP, shell scripts, and other sources in the same ETL file.

Use your existing SQL

Run it directly, include files, bind query results as variables, and add expressions only where a transform needs them.

CLI, Ant, Maven, API

Transactions, batching, conditionals, and structured error handling are built in.

Typical uses

  • Cross-database migration and table copying
  • CSV, text, and XML import or export
  • Repeatable database schema initialization and upgrades
  • Parameterized execution of SQL and other scripts
  • A focused alternative to the Ant <sql> task

When to use Scriptella

Choose Scriptella when SQL does most of the work and you need lightweight, repeatable orchestration across databases, files, or other data sources. For a different primary job, a more specialized tool may fit better.

Choose When it fits best
Scriptella SQL-centric ETL, data migration, straightforward database initialization and schema upgrades, and coordinated script execution across multiple data sources, with minimal infrastructure.
Plain scripts Small, one-off tasks with simple control flow and no need for reusable ETL structure.
Dedicated schema migration tools Schema versioning and deployment history are the primary concern and need specialized migration lifecycle features.
Batch frameworks Complex batch workloads need chunk processing, persistent job state, restartability, retry policies, or deep application-framework integration.

Getting started

Scriptella 1.5

Scriptella 1.5 is now available. It keeps the Java 17 baseline and adds current PostgreSQL, MariaDB, and MySQL JDBC guidance, safer driver-loading diagnostics, and maintained Spring and Velocity integrations.

What is new in 1.5 · Download 1.5

Previous release: Scriptella 1.4 (August 14, 2026). Download 1.4.