C# SSIS包帮助每天将数据从MySQL服务器迁移到SQL server 2008?

C# SSIS包帮助每天将数据从MySQL服务器迁移到SQL server 2008?,c#,sql-server,ssis,bids,C#,Sql Server,Ssis,Bids,我正试图编写一个SSIS包,将查询到的数据从MySQL服务器迁移到SQL server。我需要修改一个特定的列,比如“stream”(DT_I4)值(1将是2,2将变成4,等等,只是一些随机的4个整数替换),然后在插入之前检查SQL Server中是否存在另一个列值(emp_id)。如果存在,则不插入,如果不存在,则写入这些值 我是一个SSIS新手,到目前为止,我已经能够添加ADO.NET源代码和ADO.NET目标。我需要以下方面的帮助 我应该使用派生列或脚本组件来转换值吗 如何检查SQL Se

我正试图编写一个SSIS包,将查询到的数据从MySQL服务器迁移到SQL server。我需要修改一个特定的列,比如“stream”(DT_I4)值(1将是2,2将变成4,等等,只是一些随机的4个整数替换),然后在插入之前检查SQL Server中是否存在另一个列值(emp_id)。如果存在,则不插入,如果不存在,则写入这些值

我是一个SSIS新手,到目前为止,我已经能够添加ADO.NET源代码和ADO.NET目标。我需要以下方面的帮助

  • 我应该使用派生列或脚本组件来转换值吗
  • 如何检查SQL Server中是否存在emp id
  • 如何映射错误
  • 实施上述情况的最佳实践是什么,感谢阅读和您的帮助

  • 一般来说,使用库存组件来完成任务比编写自定义脚本更好。性能和维护是这一建议的两大原因。另外,不要试图在一次转换中做太多的事情。如果您允许,管道可以真正利用并行化

    1) 具体地说,也许我不明白在您的问题描述中需要在哪里进行转换,但我不会从a或a开始。相反,对于直接类型转换,我会使用

    重读它,可能您正在尝试值转换。根据复杂性的不同,可以使用一个或两个派生列来完成,最坏的情况下,可以使用脚本任务,但是数据是否需要来处理未映射的值呢?在源查询中抛出CASE语句,并使用值a到值B的映射跳过SSIS复杂性

    2) 经理将在这个部门帮助你。需要注意的是,如果找不到值,将导致包在2005年失败。2008+处理未找到行的选项更容易获得。有一个输出路径“将行重定向到不匹配的输出”,这是您想要使用的路径,因为您只需要不存在的行。作为查找的一般指导原则,只回拉感兴趣的列,因为包将在本地缓存该查找。当服务器内存有数亿行和80多列宽时,这在服务器内存中就不太合适了

    3) 什么错误?转换错误?查找错误?没有定义其他错误?总的来说,你可能会想读一读。数据流中的所有内容都有一条错误路径。大多数everything都有1+个非错误路径引出。在有多个非错误路径可用的情况下,当您将它们连接到下一个组件时,BIDS将询问您打算使用哪个输出

    4) 了解定义的极其普遍的问题后,您的包可能看起来像

    如果你的问题没有解决具体问题,那就改进你的问题