Scriptella

Scriptella is an open source ETL (Extract-Transform-Load) and script execution tool. Its primary focus is simplicity. It doesn't require the user to learn another complex XML-based language to use it, but allows the use of SQL or another scripting language suitable for the data source to perform required transformations.

Typical use

 * Database migration.
 * Database creation/update scripts.
 * Cross-database ETL operations, import/export.
 * Alternative for Ant task.
 * Automated database schema upgrade.

Features

 * Simple XML syntax for scripts. Add dynamics to your existing SQL scripts by creating a thin wrapper XML file:

<!DOCTYPE etl SYSTEM "http://scriptella.javaforge.com/dtd/etl.dtd">   -- And/or directly insert SQL statements here
 * Support for multiple datasources (or multiple connections to a single database) in a ETL file.
 * Support for many useful JDBC features, e.g. parameters in SQL including file blobs and JDBC escaping.
 * Performance. Performance and low memory usage are one of our primary goals.
 * Support for evaluated expressions and properties (JEXL syntax)
 * Support for cross-database ETL scripts by using elements
 * Transactional execution
 * Error handling via elements
 * Conditional scripts/queries execution (similar to Ant if/unless attributes but more powerful)
 * Easy-to-Use as a standalone tool or Ant task. No deployment/installation required.
 * Easy-To-Run ETL files directly from Java code.
 * Built-in adapters for popular databases for a tight integration. Support for any database with JDBC/ODBC compliant driver.
 * Service Provider Interface (SPI) for interoperability with non-JDBC DataSources and integration with scripting languages. Out of the box support for JSR 223 (Scripting for the Java™ Platform) compatible languages.
 * Built-In CSV, TEXT, XML, LDAP, Lucene, Velocity, JEXL and Janino providers. Integration with Java EE, Spring Framework, JMX and JNDI for enterprise ready scripts.