Atoti Data Connectors Overview
This is the documentation for the Atoti 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 Atoti Data Connectors?
Atoti Data Connectors is a scalable, standard service to handle data loading/extraction within an Atoti Server application. This abstracts specific data loading/extraction implementations away from the client. Atoti Data Connectors sits on top of an Atoti Server application. It 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
Atoti Server Version
Atoti Data Connectors Version | Supported Atoti Server Versions |
---|---|
1.x | 5.9.0+ |
2.x | 5.10.1+ |
3.0.1 | 5.11.0 - 5.11.4 |
3.0.2 | 5.11.5+ |
4.0.X | 6.0.2+ |
4.1.X-sb3 | 6.0.11-sb3+ |
4.2.X-AP6.0 | 6.0.11-sb3+ |
4.2.X-AS6.1 | 6.1.1+ |
The Atoti Data Connectors JARs rely on local Atoti Server repositories. We achieve this by marking all Atoti Server dependencies as <scope>provided</scope>
within Atoti Data Connectors POM files. This allows the Atoti Server dependencies to be inferred from the local file system and to flexibly use different minor versions. Atoti Server upgrades are easier as there is no need to rebuild/upgrade Atoti Data Connectors.
Configuration Classes
note
The following Configs must be included in your project’s application config.
Required Configuration Classes | Replaces Configuration Class |
---|---|
TracingConfig.class |
N/A |
BraveTracingConfig.class |
Default tracing configuration. See Tracing for more info. |
An example of including these configuration classes can be seen as follows:
@Configuration
@Import({
// Required Configurations for Tracing and APM
TracingConfig.class,
BraveTracingConfig.class
})
public class ApplicationConfig {
}
Initial Data Load
- If you are executing any DLC tasks via Spring Beans during initialization of your application, you must ensure that the
TracingConfig.TRACING_BEAN
bean is created first using the@DependsOn
annotation. Please see code sample below as an example:
@Bean
@DependsOn(value = {TracingConfig.TRACING_BEAN})
public Void initialLoad() {
// Load data here...
}
Module Structure
Here we can see the Atoti Data Connectors module structure with all target modules (in blue).
Currently, Atoti 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 Atoti Server | DC 2.x Min Atoti Server | DC 3.x Min Atoti Server | DC 4.x Min Atoti Server |
---|---|---|---|---|---|
Avro | data-connectors-avro |
5.9.0 | 5.10.1 | 5.11.0 | 6.0.2 |
AWS | data-connectors-aws |
5.9.0 | 5.10.1 | 5.11.0 | 6.0.2 |
Azure | data-connectors-azure |
5.9.0 | 5.10.1 | 5.11.0 | 6.0.2 |
CSV (Local FileSystem) | data-connectors-csv |
5.9.0 | 5.10.1 | 5.11.0 | 6.0.2 |
Google-Cloud-Platform | data-connectors-gcp |
5.9.0 | 5.10.1 | 5.11.0 | 6.0.2 |
InMemory (Extraction only) | data-connectors-core |
5.9.0 | 5.10.1 | 5.11.0 | 6.0.2 |
JDBC | data-connectors-jdbc |
5.9.0 | 5.10.1 | 5.11.0 | 6.0.2 |
Kafka | data-connectors-kafka |
5.9.0 | 5.10.1 | 5.11.0 | 6.0.2 |
Parquet | data-connectors-parquet |
5.9.2 | 5.10.1 | 5.11.0 | 6.0.2 |
RabbitMq | data-connectors-rabbitmq |
5.9.0 | 5.10.1 | 5.11.0 | 6.0.2 |
Users can import the target module required for either data Loading or Extraction by including the corresponding target’s module within their POM. Then the user will have access to both the Data Load Controller and Data Extract Engine components.
Here is an example of including Atoti Data Connectors for RabbitMq:
<dependency>
<groupId>com.activeviam.io</groupId>
<artifactId>data-connectors-rabbitmq</artifactId>
<version>4.0.1-AP56.0</version>
</dependency>
REST Services
Services URL
Both the DLC and DEE components are found at the following REST URLs:
/connectors/rest/dlc/<REST-version>/
/connectors/rest/dee/<REST-version>/
REST Service Version
Atoti 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’s REST service can be found here: DLC REST API Example and DEE Requests.
The REST version can be discovered through the /versions/rest
endpoint. The /versions/rest
endpoint allows users to retrieve the REST version the
DLC and DEE are on, along with other Atoti components.
Sending a GET
request to the /versions/rest
endpoint will return the following structure:
{
"version": 1,
"serverVersion": "6.0.x",
"apis": {
"/connectors/rest/dlc": {
"versions": [
{
"id": "1",
"restPath": "/connectors/rest/dlc/v1"
}
]
},
"/connectors/rest/dee": {
"versions": [
{
"id": "1",
"restPath": "/connectors/rest/dee/v1"
}
]
},
...
"activeviam/pivot": {
"versions": [
{
"id": "8",
"restPath": "/activeviam/pivot/rest/v8",
"wsPath": "/activeviam/pivot/ws/v8"
}
]
},
...
}
}