Repligator
Repligator is a heterogeneous replication service heavily expired by tungsten replicator.
For now it support replication from MySQL to Vertica.
Getting Started
Purposes
Repligator is used for "no ETL" on your MySQL servers setup.
You can use your MySQL in your application while havily load statistic/analytics queries can be run in Vertica setup.
Or if you have sharded MySQL setup you can run queries in all of your data in Vertica.
How it works
Repligator aggregate all MySQL replication events and periodically load it in Vertica.
MySQL MUST use GTID replication with full row binlog format.
Update events is used like delete then inserts.
Repligator support some DDL statements.
All events run in Vertica in transaction for easely restart replication process.
Prerequisites
For run Repligator you need to install unixodbc and Vertica ODBC driver
Installing
- build from source, clone this repo
curl https://glide.sh/get | sh
glide install
go build
- download latest release here
- for ubuntu14.04 use https://packagecloud.io/b13f/repligator
Usage
For your current setup in MySQL you should
- dump your db with --tab option of mysqldump.
- run
repligator -df
on your MySQL dump folder.
- execute result DDL in Vertica.
- Load dumped data to Vertica.
- Run Repligator with GTID position from dump. Config example at config.yml
You can skip Not supported DDL statements throw web interface or Slack interface.
Known issues
If you have massive updates or deletes Vertica may perform it slowly.
For some tables in Vertica 7.2 have issues for constraint rise error with delete and insert in one transactions.
For some tables in Vertica 7.2 have issues with very slow delete for few rows.
License
This project is licensed under the MIT License - see the LICENSE file for details
Acknowledgments