问题描述
我们正在研究将本地 sql Server 迁移到 Azure 的选项,并试图了解如果我们在 Azure(特别是 Azure Managed实例、Azure Synapse Analytics、Azure sql 数据库),并在本地 sql Server 实例中。
我们在任何地方都找不到关于这些是否受支持的太多信息,如果你们中的任何人能帮助填写下表,我们将不胜感激:
解决方法
AFAIK 没有提供单个接口来同时与多个数据库通信的跨数据库外观。无论是在本地/云端还是 SQL-Server/Synapse/MySQL/...
您可以通过多种方式和方法从某处/任何地方访问单个数据库。例如。从云中的代码访问本地数据库或从本地“服务器”上运行的代码访问云数据库。可用接口列表特定于每个“源”和“目标”组合。
,Azure SQL 数据库需要 elastic query 来实现跨数据库查询。不支持创建链接服务器。
Azure 托管实例与本地 SQL 服务器具有几乎相同的功能,您可以使用 USE statement
执行跨数据库查询。与本地 SQL Server 相同。
Azure Synapse Analytics 也不支持跨数据库查询。
根据我的知识和经验,我会在表中放✔或X来表示支持或不支持。请参考:
TO-> | Azure SQL 数据库 | Azure 托管实例 | Azure Synapse 分析 | 本地 SQL Server |
---|---|---|---|---|
Azure SQL DB | 通过弹性搜索查询支持(参考:https://azure.microsoft.com/en-us/blog/querying-remote-databases-in-azure-sql-db/) | X,不支持 | Azure Data Share 支持共享来自 Azure SQL 数据库和 Azure Synapse Analytics(以前称为 Azure SQL DW)的表和视图,以及共享来自 Azure Synapse Analytics(工作区)专用 SQL 池的表。当前不支持从 Azure Synapse Analytics(工作区)无服务器 SQL 池共享。 (参考:https://docs.microsoft.com/en-us/azure/data-share/how-to-share-from-sql) | Azure SQL 数据库不支持链接服务器属性,因此您将无法访问 Azure SQL 数据库中的 prem 表,并且 Azure SQL 数据库中的弹性查询是在 2 个 Azure SQL 数据库之间查询表,而不是 On prem。 (参考:https://docs.microsoft.com/en-us/answers/questions/289105/how-can-i-query-on-premise-sql-server-database-fro.html) |
Azure 托管实例 | X,不支持 | ✔,与本地 SQL Server 相同 | X,不支持 | 可通过使用链接服务器获得(参考:http://thewindowsupdate.com/2019/03/22/lesson-learned-81-how-to-create-a-linked-server-from-azure-sql-managed-instance-to-sql-server-onpremise-or-azure-vm/) |
Azure Synapse Analytics | Azure 数据共享 | X,不支持 | X,不支持 | X,不支持 |
本地 SQL Server | ✔,链接服务器 | ✔,链接服务器 | X,不支持 | 使用链接服务器,您可以从本地 SQL Server 查询 Azure SQL 数据库中的数据(参考:https://docs.microsoft.com/en-us/answers/questions/289105/how-can-i-query-on-premise-sql-server-database-fro.html) |
请根据您的要求选择合适的 Azure 数据库版本。
HTH。