JavaForge Page

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>
        
  • 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 references to 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 <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. 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.0 RC Released (April 2, 2008)

We are pleased to announce the availability of Scriptella 1.0 Release Candidate. This release introduces support for new features and fixes several bugs found in BETA version. Notable features and bug fixes:

  • Make driver attribute optional with default value of "auto"
  • etl.text utility methods to format strings
  • Execute multiple ETL files in Spring
  • Add "exclude=true/false" attribute for dialect tag.
  • NullpointerException in JEXL expressions if running in multiple threads
  • Inserting NULL values into a DB2 database
  • Simplified onerror regex matching for message and type attributes
  • New drivers: IBM AS/400 and SqlSheet JDBC Excel driver.
  • Improved CSV driver. opencsv library was replaced with a built-in implementation.

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