#mysql #backup #mutate #anonymize

mysqldump-mutator

用Rust编写的MySQL mysqldump流处理器/转换器

1个不稳定版本

0.0.1 2020年2月8日

#4 in #anonymize

Apache-2.0

120KB
3K SLoC

用Rust编写的MySQL mysqldump流处理器/转换器

这个库基于另一个用于解析SQL的库。我只是拿了这个库,简化了它,并修改和调整了它以解析和实时转换mysqldump文件。

您可以在这里查看Andy Grove的出色工作:https://github.com/andygrove/sqlparser-rs

License

这个库可以解析MySQL mysqldump文件的BufRead,每当解析器达到列或值时,它将调用一个闭包函数。这将允许您在不首先将整个文件加载到内存中时更改备份的内容。

所做的更改

  • 以前的解析器假设已经将所有标记都放入了内存中。这个解析器只解析它需要的部分,因此不需要加载整个文件才能工作。
  • 删除了大量代码(大约50%)。因此,删除了许多功能。
  • 添加了一些逻辑,以便使用BufRead而不是&str
  • 更新了库的一般API,以适应新的用法。
  • 添加了大量用于解析具体MySQL类型的逻辑。
  • 删除了返回解析代码的功能,因为它不是必需的(为了减少RAM使用而删除)

性能

在我的机器上(i7-9750H,32GB RAM),它解析和转换了4.5GB的mysqldump文件,并将结果存储在一个新文件中,用时4分钟30秒,峰值RAM使用量为100Mb。

依赖关系

~135–315KB