Scriptella is an open source ETL (Extract-Transform-Load) and script execution tool written in Java. It allows the use of SQL or another scripting language suitable for the data source to perform required transformations. Scriptella does not offer any graphical user interface.

Scriptella
Stable release
1.1 / 28 December 2012
Operating systemCross-platform
TypeETL, Data migration and SQL.
LicenseApache Software License
Websitescriptella.org

Typical use

edit
  • Database migration.
  • Database creation/update scripts.
  • Cross-database ETL operations, import/export.
  • Alternative for Ant <sql> task.
  • Automated database schema upgrade.

Features

edit
  • 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">
          <etl>
              <connection driver="$driver" url="$url" user="$user" password="$password"/>
              <script>
                  <include href="PATH_TO_YOUR_SCRIPT.sql"/>
                  -- And/or directly insert SQL statements here
              </script>
          </etl>
    
  • Support for multiple datasources (or multiple connections to a single database) in an 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 the primary goals.
  • Support for evaluated expressions and properties (JEXL syntax)
  • Support for cross-database ETL scripts by using <dialect> elements
  • Transactional execution
  • Error handling via <onerror> elements
  • Conditional scripts/queries execution (similar to Ant if/unless attributes but more powerful)
  • Easy-to-Use as a standalone tool or Ant task, without deployment or installation.
  • 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.
edit