Azure使用SSIS将数据从1 db复制到另一个db

时间:2011-11-18 13:06:19

标签: sql azure ssis sql-server-2012 azure-sql-database

我有2个azure sql db,我创建了SSIS作业,将一些数据从1 db传输到另一个db。 数据库有数百万条记录

SSIS是在内部托管的,如果我在我的电脑上执行包,

它会直接将数据从1 azure db复制到FLY上的另一个 要么 从1 azure db获取数据到我的本地,然后将数据上传到另一个azure db

如果我有数百万的记录,那么从天蓝色到本地以及从本地到天蓝色的旅行将会成本太高。

我知道azure数据同步但我的要求需要ssis来传输特定数据。 另外,azure数据同步是否可以选择仅同步特定的表?

2 个答案:

答案 0 :(得分:4)

在本地计算机上运行SSIS包将导致数据在发送到目标数据库之前移动到您的计算机。

在SQL Azure Data Sync中配置同步组时,您应该能够选择要同步的表。

答案 1 :(得分:3)

我非常确定SQL Azure Data Sync确实可以选择只需要传输的表。但是我不认为可以选择对正在传输的数据进行转换。

对于SSIS,我不知道如果没有数据首先进入您的场所,转移将如何实现。您必须建立连接 - 与第一个SQL Azure建立连接,然后与第二个SQL Azure服务器建立连接。 SSIS将从第一个流(连接)中提取数据,然后将其推送到第二个流。

我建议您探索SQL Azure Data Sync,因为它可能是您的方案的最佳选择。任何其他选项都需要先将数据放到内部,然后再转移回云端。

嗯,有第三种选择。您可以基于ADO.NET和SqlBulkCopy类创建一个简单的工作程序。将您的worker放在Cloud中的worker角色中,并通过Azure队列中的消息触发它。嗯。这似乎是一些最佳解决方案,因为您可以完全控制所复制的内容。因此,所有数据都将保留在MSFT数据中心,这意味着:

  1. 快速转移
  2. 无带宽费用(只要所有3 - 2 x SQL Azure服务器+ 1 x Worker角色部署在同一个关联组中)