Azure Synapse、Azure SQL 数据库、Azure 托管实例和本地 SQL Server 中的跨数据库查询

问题描述

我们正在研究将本地 sql Server 迁移到 Azure 的选项,并试图了解如果我们在 Azure(特别是 Azure Managed实例、Azure Synapse Analytics、Azure sql 数据库),并在本地 sql Server 实例中。

我们在任何地方都找不到关于这些是否受支持的太多信息,如果你们中的任何人能帮助填写下表,我们将不胜感激:

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/ ? 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 托管实例 ? ? ? 可通过使用链接服务器获得(参考: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 ? ? ? ?
本地 sql Server ? ? ? 使用链接服务器,您可以从本地 sql Server 查询 Azure sql 数据库中的数据(参考:https://docs.microsoft.com/en-us/answers/questions/289105/how-can-i-query-on-premise-sql-server-database-fro.html

解决方法

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。