A Data Replication Center
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cmd Fix panic (#49) Jan 17, 2019
dcp init commit Dec 27, 2018
deploy remove operator (#8) Dec 31, 2018
docs Fix (#51) Jan 17, 2019
hooks init commit Dec 27, 2018
integration_test Fix ddl (#55) Jan 18, 2019
mock refactor: move packages from ./gravity to ./pkg (#45) Jan 14, 2019
mycnf init commit Dec 27, 2018
padder refactor: move packages from ./gravity to ./pkg (#45) Jan 14, 2019
pkg fix(output.mysql): support create table a like b (#56) Jan 18, 2019
protocol init commit Dec 27, 2018
vendor refactor: move packages from ./gravity to ./pkg (#45) Jan 14, 2019
.dev.env init commit Dec 27, 2018
.dockerignore init commit Dec 27, 2018
.env init commit Dec 27, 2018
.gitignore remove operator (#8) Dec 31, 2018
.gometalinter.json init commit Dec 27, 2018
.travis.yml [skip ci] add race binary (#41) Jan 14, 2019
Dockerfile.gravity [skip ci] add race binary (#41) Jan 14, 2019
Dockerfile.gravity.race [skip ci] add race binary (#41) Jan 14, 2019
Dockerfile.prometheus_sd init commit Dec 27, 2018
Dockerfile.test.gravity chore(ci): travis ci (#3) Dec 27, 2018
Gopkg.lock refactor: move packages from ./gravity to ./pkg (#45) Jan 14, 2019
Gopkg.toml feat: support create & alter table (#23) Jan 8, 2019
LICENSE init commit Dec 27, 2018
Makefile refactor: move packages from ./gravity to ./pkg (#45) Jan 14, 2019
README-cn.md Chore doc (#39) Jan 11, 2019
README.md [skip ci] fix doc (#42) Jan 14, 2019
docker-compose-gravity-dev.yml init commit Dec 27, 2018
docker-compose-gravity-test.yml feat: config v3 & exit on batch input completion (#36) Jan 12, 2019
entrypoint.sh init commit Dec 27, 2018
wait-for-it.sh init commit Dec 27, 2018

README.md

Gravity 简体中文


Build Status

2.0 Product

Gravity is used to replicate data between various inputs and outputs (databases, message queues).

It is designed to be a customizable data replication tool that:

  • Supports multiple sources and destinations

  • Supports Kubernetes-based replication cluster

Use Cases

  • Data Bus: Use Change Data Capture (MySQL binlog, MongoDB Oplog) and batch table scan to publish data to message queue like Kafka.
  • Unidirectional data replication: Replicates data from one MySQL cluster to another MySQL cluster.
  • Bidirectional data replication: Replicates data between two MySQL clusters bidirectionally.
  • Synchronization of shards to the merged table: Synchronizes MySQL sharded tables to the merged table. You can specify the corresponding relationship between the source table and the target table.
  • Online data mutation: Data can be changed during the replication. For example, rename the column, encrypt/decrypt data columns.

Features

Input support

Input Status
MySQL Binlog
MySQL Scan
Mongo Oplog
TiDB Binlog Doing
PostgreSQL WAL Doing

output support

Output Status
MySQL/TiDB
Kafka

Data mutation support

Gravity supports the following data mutations:

  • Ignore specific data
  • Renaming columns
  • Deleting columns

Documentation


Special thanks to @dantin, @LiangShang, and @liwink for the early support to this project, and thanks @CaitinChen for the initial translation of the documentation.