我正在尝试将复制服务器从MySQL转换为redshift,为此,我正在解析MySQL binlog.对于初始复制,我正在进行mysql表的转储,将其转换为CSV文件并将其上传到S3,然后使用redshift copy命令.为此,性能是有效的.
在初始复制之后,对于我在读取binlog时的连续同步,必须按顺序运行插入和更新,这非常慢.
有什么可以提高性能吗?
我能想到的一个可能的解决方案是将语句包装在事务中,然后立即发送事务,以避免多个网络调用.但这并不能解决redshift中单个更新和插入语句运行速度非常慢的问题.单个更新语句需要6秒.知道redshift的局限性(它是一个柱状数据库和单行插入会很慢)可以做些什么来解决这些限制?
编辑1:关于DMS:我想用红移作为仓库解决方案,其中只是复制我们的MySQL不断,我不想denormalise数据,因为我有在MySQL 170+表.在进行复制期间,DMS在一天内多次显示许多错误,并在一两天后完全失败,并且很难解密DMS错误日志.此外,当我删除并重新加载表时,它会删除redshift上的现有表并创建新表,然后开始插入导致我的情况下停机的数据.我想要的是创建一个新表,然后用新表切换旧表并删除旧表