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

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.