🥟 Dumpling
Dumpling is a tool and a Go library for creating SQL dump from a MySQL-compatible database.
It is intended to replace mysqldump and mydumper when targeting TiDB.
You may read the design document, English user guide and 中文使用手册 for details.
Features
Dumpling is currently in early development stage, and most features are incomplete. Contributions are welcomed!
- SQL dump is split into multiple files (like
mydumper) for easy management. - Export multiple tables in parallel to speed up execution.
- Multiple output formats: SQL, CSV, ...
- Write to cloud storage (S3, GCS) natively
- Advanced table filtering
Any questions? Let's discuss on TiDB Internals forum!
Building
- Under directory
tidb - Install Go 1.16 or above
- Run
make build_dumplingto compile. The output is inbin/dumpling. - Run
make dumpling_unit_testto run the unit tests. - Run
make dumpling_integration_testto run integration tests. For integration test:
- The following executables must be copied or generated or linked into these locations:
bin/sync_diff_inspector(download from tidb-enterprise-tools-latest-linux-amd64)bin/tidb-server(download from tidb-master-linux-amd64)bin/tidb-lightning(download from tidb-toolkit-latest-linux-amd64)bin/minio(download from https://min.io/download)- Now, you can run
sh ./dumpling/install.shto get the above binary files.
- The following programs must be installed:
mysql(the CLI client)
- There must be a local mysql server listening on
127.0.0.1:3306, and an active user with no password that can be connected through this TCP address.
License
Dumpling is under the Apache 2.0 license. See the LICENSE file for details.