连接到 Microsoft Fabric 中的数据仓库
适用于:✅SQL 分析终结点和 Microsoft Fabric 中的仓库
在 Microsoft Fabric 中,可以通过表格数据流或 TDS 终结点访问湖屋 SQL 分析终结点或仓库,这是所有与 SQL Server TDS 终结点交互的新式 Web 应用程序所熟悉的。 这称为 Microsoft Fabric 用户界面中的 SQL 连接字符串。
本文介绍了如何连接到 SQL 分析终结点或仓库。
如果要开始,必须满足以下先决条件:
向 Fabric 中的仓库进行身份验证
在 Microsoft Fabric 中,通过 SQL 连接字符串支持两种类型的经过身份验证的用户:
- Microsoft Entra ID(以前为 Azure Active Directory)用户主体或用户标识
- Microsoft Entra ID(以前为 Azure Active Directory)服务主体
有关详细信息,请参阅 Microsoft Entra 身份验证作为 Microsoft Fabric 中 SQL 身份验证的替代方法。
SQL 连接字符串要求打开 TCP 端口 1433。 TCP 1433 是标准的 SQL Server 端口号。 SQL 连接字符串还遵循用于数据访问的仓库或 Lakehouse SQL 分析终结点安全模型。 可以获取用户有权访问的所有对象的数据。
允许 Power BI 服务标记通过防火墙
为了确保正确访问,需要允许 Power BI 服务标记进行防火墙访问。 有关详细信息,请参阅 Power BI 服务标记。 不能单独使用 TDS 终结点的完全限定的域名 (FQDN)。 允许 Power BI 标记对于通过防火墙进行连接是必要的。
检索 MySQL 连接字符串
若要检索连接字符串,请执行以下步骤:
- 导航到工作区,选择“仓库”。
- 选择“SQL 连接字符串”框中的“复制”按钮,将连接字符串复制到剪贴板。
或者,在 OneLake 中:
- 选择仓库,然后选择“
...
”以获得更多选项。 - 选择“复制 SQL 连接字符串”,将连接字符串复制到剪贴板。
SQL Server Management Studio (SSMS) 入门
以下步骤详细介绍了如何从 Microsoft Fabric 工作区开始并将仓库连接到 SQL Server Management Studio (SSMS)。
打开 SSMS 时,会出现“连接到服务器”窗口。 如该窗口已打开,可以选择“对象资源管理器”>“连接”>“数据库引擎”进行手动连接。
“连接到服务器”窗口打开后,将从本文上一部分复制的连接字符串粘贴到“服务器名称”框中。 选择“连接”,然后继续使用适当的凭据进行身份验证。 请记住,通过选项“Microsoft Entra MFA”仅支持 Microsoft Entra 多重身份验证 (MFA)。
建立连接后,对象资源管理器会显示工作区中连接的仓库及其各自的表和视图,所有这些都可供查询。
通过 SSMS(或 ADS)进行连接时,会看到 SQL 分析终结点和仓库都被列为“仓库”,很难区分这两种项目类型及其功能。 因此,我们强烈建议你采用命名约定,以便在使用 Microsoft Fabric 门户体验之外的工具时能够轻松区分这两种项目类型。 仅支持 SSMS 19 或更高版本。
使用 Power BI 进行连接
仓库或 Lakehouse SQL 分析终结点是 Power BI 中完全受支持的本机数据源,无需使用 SQL 连接字符串。 “数据”窗格将公开你有权直接访问的所有仓库。 这使你可以按工作区轻松找到仓库,并:
- 选择仓库。
- 选择实体。
- 加载数据 - 选择数据连接模式:导入或 DirectQuery。
有关详细信息,请参阅在 Microsoft Fabric 中创建报表。
使用 OLE DB 进行连接
我们支持使用 OLE DB 连接到仓库或 SQL 分析终结点。 请确保运行最新的 Microsoft OLE DB Driver for SQL Server。
使用 ODBC 进行连接
Microsoft Fabric 支持使用 ODBC 连接到仓库或 SQL 分析终结点。 请确保运行最新的 ODBC Driver for SQL Server。 使用 Microsoft Entra ID(以前称为 Azure Active Directory)身份验证。 仅支持 ODBC 18 或更高版本。
使用 JDBC 进行连接
Microsoft Fabric 还支持使用 Java 数据库连接 (JDBC) 驱动程序连接到仓库或 SQL 分析终结点。
通过 JDBC 建立连接时,检查以下依赖项:
添加项目。 选择“添加项目”并添加以下四个依赖项,然后选择“下载/更新”以加载所有依赖项。 例如:
选择“测试连接”,然后选择“完成”。
<dependency> <groupId>com.microsoft.azure</groupId> <artifactId>msal4j</artifactId> <version>1.13.3</version> </dependency> <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>mssql-jdbc_auth</artifactId> <version>11.2.1.x86</version> </dependency> <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>mssql-jdbc</artifactId> <version>12.1.0.jre11-preview</version> </dependency> <dependency> <groupId>com.microsoft.aad</groupId> <artifactId>adal</artifactId> <version>4.2.2</version> </dependency>
使用 dbt 进行连接
dbt
适配器是一个数据转换框架,它使用软件工程最佳做法(如测试和版本控制)来减少代码、自动执行依赖项管理并交付更可靠的数据,所有这些都通过 SQL 实现。
特定于 dbt
数据平台的适配器插件允许用户连接到所选的数据存储。 若要从 dbt
中连接到仓库,请使用 dbt-fabric
适配器。 同样,Azure Synapse Analytics 专用 SQL 池数据源也有自己的适配器,即 dbt-synapse
。
这两个适配器都支持 Microsoft Entra ID 身份验证,并允许开发人员使用 az cli authentication
。 但是,dbt-fabric
不支持 SQL 身份验证
DBT Fabric DW 适配器使用 pyodbc
库与仓库建立连接。 pyodbc
库是使用 Python 语言(采用 Python 数据库 API 规范 v2.0)的 ODBC 实施。 pyodbc
库使用 TDS(表数据流式处理)代理服务,通过 msodbc
连接结构中的 SQLDriverConnect 将连接字符串直接传递到数据库驱动程序。
有关详细信息,请参阅 Microsoft Fabric 数据仓库 dbt 适配器设置和 Microsoft Fabric 数据仓库 dbt 适配器配置。
通过其他方式进行连接
任何非 Microsoft 工具也可以通过 ODBC 或 OLE DB 驱动程序使用 SQL 连接字符串,以使用 Microsoft Entra ID(以前为 Azure Active Directory)身份验证连接到 Microsoft Fabric 仓库或 SQL 分析终结点。 有关详细信息和示例连接字符串,请参阅 Microsoft Entra 身份验证作为 SQL 身份验证的替代方法。
自定义应用程序
在 Microsoft Fabric 中,仓库和湖屋 SQL 分析终结点提供 SQL 连接字符串。 可以从庞大的 SQL 工具生态系统访问数据,前提是它们可以使用 Microsoft Entra ID(以前为 Azure Active Directory)进行身份验证。 有关详细信息,请参阅 Microsoft SQL 数据库的连接库。 有关详细信息和示例连接字符串,请参阅 Microsoft Entra 身份验证作为 SQL 身份验证的替代方法。
最佳做法
建议在应用程序/ETL 作业中添加重试以构建复原能力。 有关详细信息,请参阅以下文档:
- 重试模式 - Azure 体系结构中心
- 处理暂时性错误 - Azure SQL 数据库
- 步骤 4:使用 ADO.NET 弹性连接到 SQL - SQL Server 的 ADO.NET 提供程序
- 步骤 4:使用 PHP 弹性连接到 SQL - 适用于 SQL Server 的 PHP 驱动程序
注意事项和限制
- 不支持 SQL 身份验证。
- Microsoft Fabric 仓库不支持多重活动结果集 (MARS)。 MARS 默认处于禁用状态,但如果连接字符串中包含
MultipleActiveResultSets
,则应将其删除或设置为 false。 - 如果收到此错误:“无法完成操作,因为已达到系统限制”,这是因为系统令牌大小达到限制。 如果工作区具有的仓库/SQL 分析终结点过多或用户所属的 Microsoft Entra 组过多,或者这两种情况皆有,则可能会导致此问题。 我们建议每个工作区具有 40 个或更少的仓库和 SQL 分析端点,以防出现此错误。 如果该问题仍然存在,请联系支持部门。
- 如果收到错误代码 24804,并显示消息“由于系统更新而无法完成操作。 请关闭此连接后重新登录,然后重试操作”,否则会收到错误代码 6005,并显示消息“正在关闭。 对 SQL Server 的执行失败。 如果需要进一步支持,请联系 SQL Server 团队。”,这是由于临时连接丢失,可能是由于系统部署或重新配置。 若要解决此问题,请重新登录,然后重试。 若要了解如何在应用程序中构建复原能力和重试,请参阅最佳做法。
- 如果收到错误代码 18456:“对 SQL Server 的执行失败,如需进一步的支持,请联系 SQL Server 团队。”,请参阅已知问题 - 数据仓库连接或查询执行失败。
- 不支持来自 SQL Server 的链接服务器连接。