CtoolkiT Agent web [elasticsearch]

Cloud Toolkit Migration Agent web [elasticsearch]

License

License

Categories

Categories

Search Business Logic Libraries Elasticsearch
GroupId

GroupId

org.ctoolkit.agent
ArtifactId

ArtifactId

ctoolkit-agent-elasticsearch
Last Version

Last Version

1.0.1
Release Date

Release Date

Type

Type

jar
Description

Description

CtoolkiT Agent web [elasticsearch]
Cloud Toolkit Migration Agent web [elasticsearch]

Download ctoolkit-agent-elasticsearch

How to add to project

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

Dependencies

compile (7)

Group / Artifact Type Version
org.ctoolkit.agent : ctoolkit-agent-core jar 1.0.1
io.micronaut : http-client jar
io.micronaut : http-server-netty jar
io.micronaut : inject jar
io.micronaut : runtime jar
io.micronaut : management jar
org.elasticsearch.client : elasticsearch-rest-high-level-client jar 6.3.2

Project Modules

There are no modules declared in this project.

Trimigi cloud migration

Trimigi cloud migration is a tool which key motivation is to migrate hetrogenous databases (i.e. MySql to Mongo). For every datasource there is specific agent which knows how to import and export data from it.

How it works

how-it-works For more info go to wiki

Project structure

  • trimigi-core - shared core for migration agents. It handles core busines logic like transformations, conversions, rule sets, beam creation and so on
  • trimigi-agent - concreate agent implementations
    • trimigi-agent-elasticsearch - concrete agent implementation for elasticsearch data source
    • trimigi-agent-mongo - concrete agent implementation for mongo data source
    • trimigi-agent-sql - concrete agent implememtation for sql data sources
    • trimigi-agent-datastore - concrete agent implememtation for GCP datastore data sources

Docker swarm setup

Recommended way of running agents is via docker. To setup docker follow these steps:

# docker-machine start morty
  • add record to /etc/hosts for your docker machine - #172.16.139.211 morty - to find out what is ip of your docker machine run following command:
# docker-machine ls
  • create network 'migration' in docker - to add network run following command:
# docker network create --scope swarm -d overlay migration
  • add docker testing stacks - go to 'docker' directory and run one of the following commands (depending of migrating stack):

SQL (postgres) to elasticsearch migration stack:

# docker stack deploy -c docker-compose-postgres.yml,docker-compose-elasticsearch.yml,docker-compose-agent-sql.yml,docker-compose-agent-elasticsearch.yml migration 

SQL (postgres) to mongo migration stack:

# docker stack deploy -c docker-compose-postgres.yml,docker-compose-mongo.yml,docker-compose-agent-sql.yml,docker-compose-agent-agent-mongo.yml migration 
  • To run database (optionaly with its UI) run following:
# docker stack deploy -c docker-compose-elasticsearch.yml migration
# docker stack deploy -c docker-compose-mongo.yml migration
# docker stack deploy -c docker-compose-mysql.yml migration
# docker stack deploy -c docker-compose-postgres.yml migration
  • To setup apache spark processor engine run following command
# docker stack deploy -c docker-compose-spark.yml migration

Exposed docker ports

Port Service name Service type
8080 trimigi-agent-sql [agent]
8081 trimigi-agent-elasticsearch [agent]
8082 trimigi-agent-mongo [agent]
8083 trimigi-agent-datastore [agent]
5432 postgres database [datasource]
3306 mysql database [datasource]
9200 elasticsearch database [datasource]
27017 mongo database [datasource]
8180 sql adminer UI [UI]
8181 kibana UI [UI]
8182 mongo express UI [UI]
8191 spark dashboard UI master [UI]
8192 spark dashboard UI worker [UI]
4040 spark dashboard UI app [UI]

SQL setup (postgress)

  • DjdbcUrl=jdbc:postgresql://morty:5432/root
  • DjdbcUsername=root
  • DjdbcPassword=admin123
  • DjdbcDriver=org.postgresql.Driver
  • DmigrationTargetAgent=ELASTICSEARCH
  • DmigrationTargetAgentUrl=http://morty:8081

Elasticsearch setup

Mongo setup

  • DmongoUri=mongodb://root:admin123@morty:27017
  • Dmicronaut.server.port=8082

Datastore setup (env variables)

  • GOOGLE_CLOUD_PROJECT=${gcp-project-name}
  • GOOGLE_APPLICATION_CREDENTIALS=${path-to-service-account.json} (optional, if not set - well known locations will be used to get service-account.json)

Maven build

To run agents locally you need to build it with special maven profile. Each agent has its own profile:

# mvn clean install -P sql
# mvn clean install -P elasticsearch
# mvn clean install -P mongo
# mvn clean install -P datastore

Maven release

To relase into maven central run following commands:

mvn release:prepare -P sql,elasticsearch,mongo,datastore -DskipTests
mvn release:perform -P sql,elasticsearch,mongo,datastore -DskipTests -Darguments="-Dmaven.javadoc.skip=true"

Docker build image

To build docker images run following command:

# mvn clean install -P sql,elasticsearch,mongo,datstore,docker-build-image

Docker push

To push docker images into docker hub run following command:

# mvn clean install -P sql,elasticsearch,mongo,datastore,docker-push

Wiki

To learn more about trimigi visit wiki

org.ctoolkit.agent

TurnOnline.biz

The ConnecSys a fully Connected Ecosystem you can tweak anytime you wish. It will grow with your business.

Versions

Version
1.0.1