Font size:      

Welcome to Scriptella ETL Project

About Scriptella

Scriptella is an open source ETL (Extract-Transform-Load) and script execution tool written in Java.

Our primary focus is simplicity. You don't have to study yet another complex XML-based language - use SQL (or other scripting language suitable for the data source) to perform required transformations.

Download and use it! Scriptella is licensed under the Apache License, Version 2.0

Typical use

  • Executing scripts written in SQL, JavaScript, JEXL, Velocity and many more.
  • Database migration. Interoperability with LDAP, JDBC, XML and other datasources.
  • Cross-database ETL operations, import/export from/to CSV, text and XML and other formats.
  • Alternative for Ant <sql> 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">
    <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>
        
  • Work with multiple datasources in a single ETL file. See example of copying a table to another database.
  • Support for many useful JDBC features like batching, prepared statements and parameters in SQL including references to files(BLOBs) and JDBC escaping.
  • Performance. Performance and low memory usage are one of our primary goals.
  • Support for evaluated expressions and properties (based on JEXL syntax). Example of using a JEXL expression to concatenate NAME and SURNAME columns from another datasource:
    INSERT INTO TARGET_TABLE(ID, FULL_NAME) VALUES (?ID, ?{NAME+' '+SURNAME});
        
  • Support for cross-database ETL scripts by using <dialect> elements
  • Transactional execution. Changes are rolled back if a failure occurs while running the ETL.
  • Flexible error handling by using <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. 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 scripting languages. Out of the box support for JSR 223 (Scripting for the Java™ Platform) compatible languages.
  • Built-In CSV, Excel, Text, XML, LDAP, Lucene, Velocity, JEXL and Janino providers. Integration with Java EE, Spring Framework, JMX , JNDI and JavaMail for enterprise ready scripts.

News

Scriptella 1.1 Released (December 28, 2012)

Scriptella 1.1 has been released and available for download. The following features and bug-fixes were added:

Maven artifacts have been published.

See change log for additional details.
Make ETL easier - Download Scriptella Now!