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.

Visit support page for community and commercial support options.

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.org/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.2 Released (October 3, 2019)

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

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