在Azure数据库之间进行数据传输的正确方法是什么?

时间:2014-04-28 17:07:02

标签: azure ssis azure-sql-database

我是Azure的新手,我负责在Azure数据库之间(最终跨地区)定期迁移/复制(各种)数据。在我看来,我以为我们只会写&在每个使用者上安装SSIS包以从发布者处收集数据。然而,在一次会议中,人们表示不应该使用SSIS,并且使用服务总线或Web角色或工作人员是实现此目的的方法。

但......经过双重检查后......阅读服务总线和Web角色&工人......我不认为它们对我的需要有用。我错了吗?

问:在Azure数据库之间进行数据传输的正确方法是什么? 问: IAAS与SAAS之间的策略有何不同?

更新
我正在寻找方法来迁移部分模式,以及更新现有模式(而不是复制数据库作为整体)。例如,通常情况下,如果我在“geo”架构中拥有地理数据并希望将其提供给其他人,我会创建一个其他人可以安装的SSIS包。时间表。但是,我被告知SSIS不是在Azure数据库实例之间执行此操作的方法...因此,问题。

5 个答案:

答案 0 :(得分:2)

如果您使用新发布的Azure SQL数据库高级版,您将自动获得最多4个地理复制的可读副本(http://msdn.microsoft.com/library/azure/dn741340.aspx)。

如果您希望复制内部部署数据,可以考虑SQL Server 2012 SP1 CU2(http://technet.microsoft.com/en-us/library/jj919148.aspx)引入的Azure备份功能。

答案 1 :(得分:2)

如果您不需要完整的数据库复制/同步,但只需要选择要传输的特定表/列/数据,这里有一些选项:

  1. Azure SQL Data Sync Service - 此服务在Azure上可用,允许您使用SQL安装(LocalDb,Express,Server)同步Azure SQL数据库甚至内部部署/云托管的VM。不幸的是,它只是一个预览版(我认为它现在拥有Azure服务运行时间最长的预览版)。

  2. 正如Jk_xp所提到的,您可以使用Sync Framework。这里有一个Azure托管同步服务的示例:Walkthrough of Windows Azure Sync Service Sample。此示例将与Azure或Azure到Azure方案一起使用内部部署。

  3. 如果您在Azure SQL数据库之间进行同步,并且不介意在Azure上设置SQL VM,则可以选择在Azure SQL VM上安装SSIS。

  4. 这里也有一些不错的读物:

    Cloud Design Patterns - Data Replication and Synchronization Guidance

    Appendix A - Replicating, Distributing, and Synchronizing Data

答案 2 :(得分:2)

您还可以使用新的Azure数据工厂服务在Azure SQL数据库之间移动所选数据。可以调度传输并包含类似于SSIS的数据转换逻辑,但在Azure中作为服务提供。有关详细信息,请参阅Data Factory Copy Operations

答案 3 :(得分:1)

Q1:在SQL Server(Azure或内部部署)之间同步数据的正确方法是使用Microsoft Sync Framework。您可以编写自己的灵活同步过程。以下是一些开头的链接:

Q2:策略的不同之处在于您将托管/运行同步过程的方式 - WorkerRole(PAAS),虚拟机(IAAS)或内部部署(如果适用)。我建议将工作者角色作为最便捷的维护方式和与VM相同的价格。

<强> UPD: 根据您的评论:您可以使用WorkerRole创建Azure项目。然后你可以编写自己的同步逻辑(例如here)。您的辅助角色可以侦听传入消息的存储队列(请参阅示例here, section "Handle the message")。然后每当有人将消息发布到队列中时 - 同步过程就会被执行。

如果需要安排同步过程,可以使用Azure Scheduler发布消息(请参阅Post a message to an Azure Storage Queue

如果您的流程是按需的 - 只需编写您的代码片段即可将消息发送到队列中(如上面的角色通信示例所示)。希望它有所帮助。

答案 4 :(得分:1)

要将其他选项添加到组合中,您还可以使用以下技术:

  • SQL Server BCP :这具有很大的灵活性,但会将数据保存在中间文件中。如果从拥有数据库的区域中的Azure中的VM运行BCP,则可以避免将数据复制到内部部署。
  • 分布式查询:您可以在Azure VM中运行常规SQL Server IaaS实例,并将源服务器和目标服务器注册为链接服务器。然后,您可以运行SELECT INTO语句来复制数据,并使用您运行的查询为目标数据库/表格设置数据。

为了避免在空闲时支付VM费用,请考虑仅在执行数据移动时将其运行并在此之后将其关闭。您不必删除虚拟机。