我在 SQL Server 中有超过 500 个表要迁移到 Dynamics 365。到目前为止,我使用的是 SSIS。SSIS 的问题是动态 CRM 的目标实体要与映射一起指定,因此为数百个 SQL 服务器表源的实体创建单独的数据流是愚蠢的。有没有更好的方法来实现这一点?
我是 SSIS 的新手。我不觉得这是正确的方法。我只是在模拟 SQL Server 的导入/导出向导。请让我知道是否有更好的方法
令人惊讶的是,这个问题经常被问到!
SSIS不能有动态数据流,因为缓冲区大小(管道)是在设计时(而不是执行时)计算的。
重用数据流的唯一方法是所有源到目标的映射都相同 - 例如,如果您有 2 个具有完全相同 DDL 结构的表。
一种选择(可怕的 IMO)是将所有列连接成一个巨大的管道分隔VARCHAR
,然后将其写入您的目的地到具有 2 列的自定义暂存表中,例如(table_name,column_dump)然后在您的目标系统中通过加载后的 SQL 语句。
我会咬紧牙关,戴上耳机,开始一一生成 SSIS 数据流——你会惊讶于你能以多快的速度把它们敲出来!
ETL 就是这样工作的。您必须映射源、目标和列映射。如果您希望它是动态的,则可以在Execute SQL task
foreach 循环容器内部进行。阅读更多
但是当我们使用 Kingswaysoft CRM 目标连接器时 - 这有点棘手(可能或不可能?)因为这需要源和目标之间非常具体的列映射。
当源架构来自 OLEDB 时,最好为每个表设置单独的数据流任务。