storagetapper

StorageTapper is a scalable realtime MySQL change data streaming and transformation service

Github stars Tracking Chart

StorageTapper

StorageTapper is a scalable realtime MySQL change data streaming and
transformation service.

Service reads data from MySQL, transforms it into an Avro schema
serialized format, and publishes these events to Kafka. Consumers can then
consume these events directly from Kafka.

Build Status
Go Report Card
codecov

Features

  • Producing events to Kafka
  • Automatic work distribution between instances
  • Avro output format
  • JSON output format
  • HTTP endpoints to control
    • Tables to be ingested
    • Output schema
    • Database address resolver
  • Snapshot is taken from slave to reduce load on master
  • Binlogs streaming from master for better SLA
  • Throttling when taking snapshot

Limitations

  • Tables must have a primary key

Build & Install

Get build dependencies

go get github.com/Masterminds/glide
go get github.com/alecthomas/gometalinter

It's recommended to have local MySQL and Kafka installed, so as many tests
depend on them. Tweak development config to
correspond your setup.
WARNING: Tests run dangerous commands like RESET MASTER and DROP
DATABASE, so for tests don't use any MySQL instances with precious data.

Debian & Ubuntu

cd storagetapper
make deb && dpkg -i ../storagetapper_1.0_amd64.deb

Others

cd storagetapper
make test && make install

Configuration

Storagetapper loads configuration from the following files and location in the
given order:

    /etc/storagetapper/base.yaml
    /etc/storagetapper/production.yaml
    $(HOME)/base.yaml
    $(HOME)/production.yaml
    $(STORAGETAPPER_CONFIG_DIR)/base.yaml
    $(STORAGETAPPER_CONFIG_DIR)/production.yaml

Available options described in Options section

License

This software is licensed under the MIT License.

Main metrics

Overview
Name With Owneruber/storagetapper
Primary LanguageGo
Program languageShell (Language Count: 3)
Platform
License:MIT License
所有者活动
Created At2017-05-07 00:31:41
Pushed At2023-03-19 22:39:47
Last Commit At2022-01-11 22:23:26
Release Count2
Last Release Namev1.1.0-beta (Posted on )
First Release Namev1.0.0-beta (Posted on )
用户参与
Stargazers Count355
Watchers Count22
Fork Count66
Commits Count250
Has Issues Enabled
Issues Count28
Issue Open Count18
Pull Requests Count29
Pull Requests Open Count6
Pull Requests Close Count2
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private