univocity-api

uniVocity Data Integration's Public API

License

License

GroupId

GroupId

com.univocity
ArtifactId

ArtifactId

univocity-api
Last Version

Last Version

1.0.6
Release Date

Release Date

Type

Type

jar
Description

Description

univocity-api
uniVocity Data Integration's Public API
Project URL

Project URL

http://github.com/uniVocity/univocity-api
Project Organization

Project Organization

uniVocity Software Pty Ltd
Source Code Management

Source Code Management

https://github.com/uniVocity/univocity-api

Download univocity-api

How to add to project

<!-- https://jarcasting.com/artifacts/com.univocity/univocity-api/ -->
<dependency>
    <groupId>com.univocity</groupId>
    <artifactId>univocity-api</artifactId>
    <version>1.0.6</version>
</dependency>
// https://jarcasting.com/artifacts/com.univocity/univocity-api/
implementation 'com.univocity:univocity-api:1.0.6'
// https://jarcasting.com/artifacts/com.univocity/univocity-api/
implementation ("com.univocity:univocity-api:1.0.6")
'com.univocity:univocity-api:jar:1.0.6'
<dependency org="com.univocity" name="univocity-api" rev="1.0.6">
  <artifact name="univocity-api" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.univocity', module='univocity-api', version='1.0.6')
)
libraryDependencies += "com.univocity" % "univocity-api" % "1.0.6"
[com.univocity/univocity-api "1.0.6"]

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

Project Modules

There are no modules declared in this project.

thumbnail

The uniVocity-API

This project contains the public API of uniVocity, a data integration framework for Java that abstracts away many of the complexities involved in ETL, data mappings and data synchronization processes.

Only uniVocity supports schema migration with referential integrity. Data updates can be detected and applied automatically. Migrated data can be updated easily using various data management strategies implemented by uniVocity.

The flexibility provided by the uniVocity API is unmatched. Unlike traditional ETL tools, you have control over every step of the process and are not dependent on pre-made connectors or data transformation functions. Simply define mappings from source to destination, and uniVocity will manage all data operations automatically.

Here's a quick example:

//Obtains the engine instance already configured
DataIntegrationEngine engine = Univocity.getEngine(engineName);

//Creates a mapping builder from "sourceDataStore" to "destinationDataStore".
DataStoreMapping mapping = engine.map("sourceDataStore", "destinationDataStore");

//With a data store mapping builder, we can start creating mappings between 
//their entities (tables, files, custom entities you create yourself, etc)
//This creates an entity mapping builder
EntityMapping entityMapping = mapping.map("source_entity", "destination_entity");

//With an entity mapping builder, we can create mappings between their fields. 
//Queries, methods, external services and any object available in your 
//application can be used as well.
entityMapping.identity()
	.associate("source_key_1", "source_key_2")
	.toGeneratedId("destination_id");

//Copies values from source_entity.some_description to destination_id.some_field. 
//All values read from `some_description` and `another_description` will be
//trimmed then converted to lower case, as specified in the sequence of functions
entityMapping.value()
	.copy("some_description", "another_description")
	.to("some_field", "another_field")
	.readingWith("trim", "toLowerCase");

//Creates a function that will execute calls to `yourAccountService` for some 
//account number. The engine scope caches the result for each given account 
//and reuses it while a mapping cycle is active.  
engine.addFunction(EngineScope.CYCLE, "getAccountBalance", new FunctionCall<BigDecimal, String>() {
        @Override
        public BigDecimal execute(String accountNumber) {
            return yourAccountService.findAccount(accountNumber).getBalance();
        }
   });

    //You can use values taken from the source entity to call your function
   entityMapping.value().copy("accountNumber").to("balance").readingWith("getAccountBalance");
   
   //Use it directly:
   entityMapping.value().copy("{getAccountBalance('12345')}").to("balance");
   
   //With variables:
   engine.setVariable("account", myAccountObject);
   entityMapping.value().copy("{getAccountBalance($account)}").to("balance");
          
//Configures how data mapped from `source_entity` to 
//`destination_entity` should be persisted, if at all.
entityMapping.persistence()
	.usingMetadata()  //Generate metadata to enable features such as data change detection. 
	.deleteDisabled() //Do not remove any existing records
	.updateModified() //Update destination records if the counterpart in the source has been changed.
	.insertNewRows(); //Insert new rows identified in the source entity

//Executes a data mapping cycle
engine.executeCycle();

...

The source code in this project is fully documented and you'll soon realize that uniVocity offers much more than any other ETL tool.

There is much, much more! Check our tutorial to learn all about uniVocity's unique features.

com.univocity

univocity

Versions

Version
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0