开发者社区 > 数据库 > 数据库管理工具 > 正文

DMS中,dts源和目标选择同一个实例,这样操作可以不?

DMS中,dts源和目标选择同一个实例,选择某一个表进行同步 到目标实例修改表名为wx_push_tmp where条件增加时间过滤 这个where应该是针对是源实例的wx_push进行判断同步到wx_push_tmp吧,这样操作没毛病?
b550e4d1784845454f72180efe0e0dfc.pngba549e86e0f37d47df331b0f5922ef33.png

展开
收起
小小鹿鹿鹿 2024-01-17 22:30:36 40 0
3 条回答
写回答
取消 提交回答
  • 在处理大量数据时,尤其是在同一个数据库实例内,通常需要考虑效率和影响。针对你的具体场景,这里有几个建议和考虑因素:

    1. 使用SQL查询直接插入
    * 你可以写一个SQL查询,从大表A中选择需要保留的4000W数据,并直接插入到新表B中。这种方法通常比导出再导入要快得多。
    * SQL示例:`INSERT INTO B SELECT * FROM A WHERE your_condition;`
    * 这种方法的效率取决于多个因素,包括硬件、索引、表结构、并发工作负载等。
    
    1. 关于DMS数据导出
    * DMS(数据迁移服务)的具体性能取决于多种因素,包括网络带宽、磁盘I/O、CPU等。
    * 导出4000W条记录可能需要很长时间,特别是如果每条记录都很大或者网络/存储性能有限的情况下。
    * 通常,这种方法比直接SQL查询要慢得多,并且可能涉及额外的成本和复杂性。
    
    1. 关于DTS同实例同库数据同步
    * DTS(数据传输服务)通常用于跨实例或跨账户的数据迁移。
    * 在同一个实例的同一个数据库内,使用DTS可能不是最有效的方法,因为它可能引入不必要的开销和复杂性。
    * 在你的场景中,直接在数据库内部使用SQL查询可能是更简单、更快速的方法。
    
    1. 关于删除历史数据和替换表
    * 如果直接删除8000W条数据,可能会对数据库性能产生重大影响,甚至可能导致事务日志迅速增长,从而耗尽存储空间。
    * 你的策略(即将需要保留的数据复制到新表,然后替换旧表)是一个合理的选择。
    * 在替换旧表之前,请确保新表已正确配置索引和优化,以便它能够高效地处理查询。
    
    1. 关于DTS的源和目标选择
    * 如果DTS的源和目标都是同一个实例的同一个数据库,这可能不是一个典型的使用场景。
    * 通常,DTS用于将数据从一个实例(或账户)迁移到另一个实例(或账户)。
    * 在你的情况下,直接在SQL层面处理数据可能是更直接、更有效的方法。
    

    综上所述,基于你的具体需求和环境,使用直接的SQL查询来选择和插入数据可能是最简单、最有效的方法。在执行这些操作时,请务必小心,并确保你有适当的备份和恢复策略。

    2024-01-24 16:43:09
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    对于大表A查询4000W数据拷贝到新表B,可以考虑使用DMS的数据同步功能。具体操作步骤如下:

    1. 在DMS中创建一个新的数据同步任务,源实例选择同一个库中的表A,目标实例选择同一个库中的表B。
    2. 在数据同步任务的SQL语句中,编写一个SELECT语句来查询需要拷贝的数据,例如:SELECT * FROM A WHERE id >= 1 AND id <= 40000000。
    3. 在目标实例中修改表名为wx_push_tmp,并增加时间过滤条件。
    4. 启动数据同步任务,等待任务完成即可。

    关于DMS数据导出4000W数据的耗时问题,这取决于您的服务器性能和网络状况。一般来说,如果服务器性能较好且网络状况良好,导出4000W数据可能需要几分钟到十几分钟的时间。建议您根据实际情况进行测试。

    对于您提到的DTs同实例同库前的表数据同步问题,您可以按照以下步骤操作:

    1. 在DTs中创建一个新的数据同步任务,源实例选择同一个库中的表A,目标实例选择同一个库中的表B。
    2. 在数据同步任务的SQL语句中,编写一个SELECT语句来查询需要拷贝的数据,例如:SELECT * FROM A WHERE id >= 1 AND id <= 40000000。
    3. 在目标实例中修改表名为wx_push_tmp,并增加时间过滤条件。
    4. 启动数据同步任务,等待任务完成即可。

    这样操作应该没有问题,可以实现将大表中的4000W数据拷贝到新表中,并保留历史数据8000W+的需求。

    2024-01-18 13:03:12
    赞同 展开评论 打赏
  • 是的,过滤条件仅支持过滤当前对应表的字段,不支持跨表过滤,详细参考
    https://help.aliyun.com/document_detail/125673.htm?
    此回答来自钉群阿里云DMS数据管理用户交流群。

    2024-01-18 10:21:51
    赞同 展开评论 打赏

相关产品

  • 数据管理
  • 热门讨论

    热门文章

    相关电子书

    更多
    基于Spark的统一数据管理与数据探索平台 立即下载
    INFINIDATA:基于Spark的统一数据管理与探索平台 立即下载
    DTS控制台一本通 立即下载