我是Azure的新手,我负责在Azure数据库之间(最终跨地区)定期迁移/复制(各种)数据。在我看来,我以为我们只会写&在每个使用者上安装SSIS包以从发布者处收集数据。然而,在一次会议中,人们表示不应该使用SSIS,并且使用服务总线或Web角色或工作人员是实现此目的的方法。
但......经过双重检查后......阅读服务总线和Web角色&工人......我不认为它们对我的需要有用。我错了吗?
问:在Azure数据库之间进行数据传输的正确方法是什么? 问: IAAS与SAAS之间的策略有何不同?
更新
我正在寻找方法来迁移部分模式,以及更新现有模式(而不是复制数据库作为整体)。例如,通常情况下,如果我在“geo”架构中拥有地理数据并希望将其提供给其他人,我会创建一个其他人可以安装的SSIS包。时间表。但是,我被告知SSIS不是在Azure数据库实例之间执行此操作的方法...因此,问题。
答案 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)
如果您不需要完整的数据库复制/同步,但只需要选择要传输的特定表/列/数据,这里有一些选项:
Azure SQL Data Sync Service - 此服务在Azure上可用,允许您使用SQL安装(LocalDb,Express,Server)同步Azure SQL数据库甚至内部部署/云托管的VM。不幸的是,它只是一个预览版(我认为它现在拥有Azure服务运行时间最长的预览版)。
正如Jk_xp所提到的,您可以使用Sync Framework。这里有一个Azure托管同步服务的示例:Walkthrough of Windows Azure Sync Service Sample。此示例将与Azure或Azure到Azure方案一起使用内部部署。
如果您在Azure SQL数据库之间进行同步,并且不介意在Azure上设置SQL VM,则可以选择在Azure SQL VM上安装SSIS。
这里也有一些不错的读物:
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)
要将其他选项添加到组合中,您还可以使用以下技术:
为了避免在空闲时支付VM费用,请考虑仅在执行数据移动时将其运行并在此之后将其关闭。您不必删除虚拟机。