之前做过方案,将三千张表、10TB 数据从 SQL Server 迁移到 Amazon Redshift 。
https://zhiweio.notion.site/10TB-SQL-Server-Amazon-Redshift-1aeb24862723455d919de6edf035bdeb借助 Linux 管道文件加速 SQL Server 数据迁移 Redshift
如何将 10TB 数据从 SQL Server 迁移到 Amazon Redshift
https://zhiweio.notion.site/Linux-SQL-Server-Redshift-f5c2b5dcdeb646f793de494954244a8a这个工具是给 bcp 套了层壳,方便将 SQL Server 数据最高效率下载、切块、压缩并上传的 S3:
https://github.com/zhiweio/StreamXfer这个方案能够支撑每天全量迁移一遍 SQL Server 全库 10TB 数据到 Amazon Redshift 。
参考建议:
1. 表结构迁移可以基于 sqlglot 库写一个建表语句翻译器,先迁移全部表结构。
2. SQL Server 数据导出用 bcp ,或者用封装的 StreamXfer ,记得一定用 JSON 格式,有一些坑;
3. 导入 JSON 到 MySQL 用 MySQL Shell Utilities ,
https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-utilities-json.html ,这个支持管道文件,可以实现 SQL Server -> bcp -> mysqlsh -> MySQL ,效率极高。
4. Stored Procedure 的迁移需要业务开发去挨个翻译、测试 SQL 。
如有需要可以私聊