Data Connectors Overview

This is the documentation for ActiveViam’s Data Connectors library, with a section for users and a section for developers for both the Data Load Controller and Data Extract Engine libraries.

What is Data Connectors?

Data Connectors is a scalable, standard service to handle data loading/extraction within an ActivePivot application. This abstracts specific data loading/extraction implementations away from the client. Data Connectors sits on top of an ActivePivot application. Data Connectors contains target-specific modules that each yield a jar. Developers can pick and choose to include the artifacts they need in their pom file.

Requirements

ActivePivot Version
Data Connectors Version Supported AP Versions
Data Connectors 1.x AP versions 5.9.0+
Data Connectors 2.x AP versions 5.10.1+

The Data Connectors JAR files rely on local ActivePivot repositories. We achieve this by marking all ActivePivot dependencies as <scope>provided</scope> within Data Connectors POM files. This allows the ActivePivot dependencies to be inferred from the local file system and to flexibly use different minor versions. It also makes ActivePivot upgrades easier as there is no need to rebuild/upgrade the Data-Connectors tool. The same is expected for the javax.servlet:javax.servlet-api archetype if you are using the monitoring for XMLA.

Configuration Classes

note

The following Configs must be included in your project’s application config.

Required Configuration Classes Replaces Configuration Class
APMTracingConfig.class N/A
APMActivePivotServicesConfig.class ActivePivotServicesConfig

An example of including these configuration classes can be seen as follows:

    @Configuration
    @Import({
        // Required Configurations for Tracing and APM
        APMTracingConfig.class,
        APMActivePivotServicesConfig.class
    })
    public class ApplicationConfig {
    }
Registry Setup
  • APM must be defined with high precedence in ActivePivot’s Registry. This is because some classes are Extended Plugins or Types overriding the core code. It is important to make sure they are picked first by the Registry. Make sure you add the package com.activeviam.apm to be picked first. The code sample below can be added to your application’s configuration.
/** Before anything else we statically initialize the ActiveViam Registry. */
static {
    Registry.setContributionProvider(
        new ClasspathContributionProvider(
            "com.activeviam.apm",  // First has highest priority
            "com.qfs",
            "com.quartetfs",
            "com.activeviam"
        )
    );
}
Initial Data Load
  • If you are executing any DLC tasks via Spring Beans during initialization of your application, you must ensure that the APM_TRACING Bean is created first either by the @DependsOn or by Autowiring the APM_TRACING Bean. Please see the code sample below as an example:
    @Bean
    @DependsOn(value = {APM_TRACING})
    public Void initialLoad() {
        // Load data here...
    }

Module Structure

Here we can see the Data Connectors module structure with all target modules (in blue).

PackageStructure.png

Currently, Data Connectors supports the following targets for the DLC and DEE components. Targets are included in the following maven modules:

Target Maven Artifact ID DC 1.x Min Version AP DC 2.x Min Version AP
Avro data-connectors-avro 5.9.0 5.10.1
AWS data-connectors-aws 5.9.0 5.10.1
Azure data-connectors-azure 5.9.0 5.10.1
CSV (Local FileSystem) data-connectors-csv 5.9.0 5.10.1
Google-Cloud-Platform data-connectors-gcp 5.9.0 5.10.1
InMemory (Extraction only) data-connectors-core 5.9.0 5.10.1
JDBC data-connectors-jdbc 5.9.0 5.10.1
Kafka data-connectors-kafka 5.9.0 5.10.1
Parquet data-connectors-parquet 5.9.2 5.10.1
RabbitMq data-connectors-rabbitmq 5.9.0 5.10.1

You can import the target module required for either data Loading or Extraction by including the corresponding target’s module within their POM. You will then have access to both the Data Load Controller and the Data Extract Engine components.

Here is an example of including Data Connectors for RabbitMq:

<dependency>
    <groupId>com.activeviam.io</groupId>
    <artifactId>data-connectors-rabbitmq</artifactId>
    <version>2.0.0-AP5.10</version>
</dependency>

REST Services

Services URL

Both the DLC and DEE components are found at the following REST URLs:

/services/connectors/rest/dlc/<REST-version>/
/services/connectors/rest/dee/<REST-version>/

REST Service Version

Data Connectors REST endpoints contain a version number. This version number helps remote users ensure they are using the correct REST contract. The REST version is appended to the end of the base REST endpoint for both DLC and DEE components. More on each component can be found here: DLC REST Services and DEE REST Services.

Below we can see the REST version matrix for the different componenets of Data Connectors:

Data Connectors Component REST Version
Data Load Controller v1
Data Extract Engine v1