The ML Platform Behind Uber's AI
Michelangelo AI: 우버의 엔드‑투‑엔드 머신러닝 플랫폼
공식 MyDumper 프로젝트
Official MyDumper Project
개발 도구C · ShellGitHub @mydumper직접 설치운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗MyDumper is a MySQL Logical Backup Tool. It has 2 tools:
mydumper which is responsible to export a consistent backup of MySQL databasesmyloader reads the backup from mydumper, connects to the destination database and imports the backup.Both tools use multithreading capabilities. MyDumper is Open Source and maintained by the community, it is not a Percona, MariaDB or MySQL product.
Official Documentation (work in progress) Machine JSON Logging
This sections has been migrated
This sections has been migrated
You can download the official docker image or you can build the Docker image either from local sources or directly from Github sources with the provided Dockerfile.
docker build --build-arg CMAKE_ARGS='-DWITH_ZSTD=ON' -t mydumper \
https://github.com/mydumper/mydumper.git#master:docker
Keep in mind that the main purpose the Dockerfile addresses is development and build from source locally. It might not be optimal for distribution purposes, but can also work as a quick build and run solution with the above one-liner, though.
See Usage
This is all done following best MySQL practices and traditions:
This for now does not provide consistent snapshots for non-transactional engines - support for that is expected in 0.2 :)
This sections has been migrated
You can execute external commands with --exec like this:
mydumper --exec "/usr/bin/gzip FILENAME"
--exec is single threaded, similar implementation than Stream. The exec program must be an absolute path. FILENAME will be replaced by the filename that you want to be processed. You can set FILENAME in any place as an argument.
The default file (aka: --defaults-file parameter) is starting to be more important in MyDumper
[mydumper]
host = 127.0.0.1
user = root
password = p455w0rd
database = db
rows = 10000
string-pk-planner = auto
string-pk-planner-timeout = 30
string-pk-planner-max-probes = 64
string-pk-planner-max-prefixes = 256
string-pk-planner-min-rows = 1000000
string-pk-planner-target-rows-per-prefix = 0
[myloader]
host = 127.0.0.1
user = root
password = p455w0rd
database = new_db
optimize-keys = AFTER_IMPORT_PER_TABLE
Prior to v0.14.0-1:
[mydumper_variables]
wait_timeout = 300
sql_mode = ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
[myloader_variables]
long_query_time = 300
innodb_flush_log_at_trx_commit = 0
From to v0.14.0-1:
[mydumper_session_variables]
wait_timeout = 300
sql_mode = ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
[mydumper_global_variables]
sync_binlog = 0
slow_query_log = OFF
[myloader_session_variables]
long_query_time = 300
[myloader_global_variables]
sync_binlog = 0
innodb_flush_log_at_trx_commit = 0
For Aurora/MySQL 5.7 restores where SET SESSION SQL_LOG_BIN = 0 is rejected, use:
[myloader]
source-control-command = AWS
aws-session-command = CALL mysql.rds_disable_session_binlog()
aws-session-command is executed on every myloader connection after the normal session setup. You can repeat the option on multiple lines in the config file, or pass multiple statements separated by ;\n.
When --source-control-command=AWS is set, --enable-binlog is ignored and myloader uses the AWS session binlog call instead.
See myloader.cnf for a complete sample.
Examples:
[myloader]
source-control-command = AWS
aws-session-command = CALL mysql.rds_disable_session_binlog()
aws-session-command = SET SESSION some_aws_setting = 1
aws-session-command = CALL mysql.some_other_aws_proc()
myloader \
--source-control-command=AWS \
--aws-session-command='CALL mysql.rds_disable_session_binlog()' \
--aws-session-command='SET SESSION some_aws_setting = 1' \
--aws-session-command='CALL mysql.some_other_aws_proc()'
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗