首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用resume导入SSIS数据

使用resume导入SSIS数据
EN

Stack Overflow用户
提问于 2012-01-11 01:49:06
回答 2查看 477关注 0票数 4

我需要将一个大型SQL表从本地实例推送到SQL Azure。传输是一种简单的“干净”上传--只需将数据推送到一个新的空表中。

该表非常大(大约1亿行),只包含GUID和其他简单类型(没有时间戳或其他任何类型)。

我在SSMS中使用Data Import / Export Wizard创建SSIS包。这个包运行得很好。

问题是当包在缓慢或间歇性连接上运行时。如果互联网连接在中途中断,那么就没有办法“恢复”传输。

以可恢复的方式设计SSIS包以上传此数据的最佳方法是什么?即在连接失败的情况下,或者允许作业仅在特定的时间窗口之间运行。

EN

回答 2

Stack Overflow用户

发布于 2012-01-11 22:58:51

通常,在这种情况下,我会将包设计为枚举大小为N的批(1k行,10M行,等等),并将最后成功传输的批处理记录到一个处理表中。但是,使用GUID时,您不能将它们完全划分为存储桶。

在这种情况下,我会修改数据流,使其看起来像源->查找->目的地。在您的查找转换中,查询Azure端并仅检索密钥(从myTable中选择myGuid )。在这里,我们只对在查找记录集中没有匹配的行感兴趣,因为这些是等待传输的行。

假设Azure端被完全填充,一个完整的缓存将花费大约1.5 to (100M *16字节)的内存,外加相关的数据传输成本。这将比截断和重新传输所有数据的成本更低,但只想确保我调用了它。

票数 4
EN

Stack Overflow用户

发布于 2012-01-11 23:36:39

上传时只需按GUID排序即可。并确保您使用来自Azure的最大(Guid)作为从故障恢复或重新启动时的起点。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8807940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档