连接到 Microsoft Fabric 中的数据仓库

适用于: SQL 分析端点和 Microsoft Fabric 中的仓库

在 Microsoft Fabric 中,可以通过表格数据流或 TDS 终结点访问湖屋 SQL 分析终结点或仓库,这是所有与 SQL Server 终结点交互的新式 Web 应用程序所熟悉的。 这称为 Microsoft Fabric 用户界面中的 SQL 连接字符串。

本文介绍了如何连接到 SQL 分析终结点或仓库。

如果要开始,必须满足以下先决条件:

向 Fabric 中的仓库进行身份验证

在 Microsoft Fabric 中,通过 SQL 连接字符串支持两种类型的经过身份验证的用户:

  • Microsoft Entra ID(以前为 Azure Active Directory)用户主体或用户标识
  • Microsoft Entra ID(以前为 Azure Active Directory)服务主体

SQL 连接字符串要求打开 TCP 端口 1433。 TCP 1433 是标准的 SQL Server 端口号。 SQL 连接字符串还遵循用于数据访问的仓库或 Lakehouse SQL 分析终结点安全模型。 可以获取用户有权访问的所有对象的数据。

允许 Power BI 服务标记通过防火墙

为了确保正确访问,需要允许 Power BI 服务标记进行防火墙访问。 有关详细信息,请参阅 Power BI 服务标记。 不能单独使用 TDS 终结点的完全限定的域名 (FQDN)。 允许 Power BI 标记对于通过防火墙进行连接是必要的。

检索 MySQL 连接字符串

若要检索连接字符串,请执行以下步骤:

  1. 导航到工作区,选择“仓库”,然后选择 ... 省略号来显示“更多选项”。

    仓库工作区项的屏幕截图。“更多选项”或省略号按钮在框中显示。

  2. 选择“复制 SQL 连接字符串”,将连接字符串复制到剪贴板。

    上下文菜单打开的工作区屏幕的屏幕截图。

SQL Server Management Studio (SSMS) 入门

以下步骤详细介绍了如何从 Microsoft Fabric 工作区开始并将仓库连接到 SQL Server Management Studio (SSMS)

  1. 打开 SSMS 时,会出现“连接到服务器”窗口。 如该窗口已打开,可以选择“对象资源管理器”>“连接”>“数据库引擎”进行手动连接。

    显示在“连接”菜单上选择“数据库引擎”的位置的屏幕截图。

  2. “连接到服务器”窗口打开后,将从本文上一部分复制的连接字符串粘贴到“服务器名称”框中。 选择“连接”,然后继续使用适当的凭据进行身份验证。 请记住,通过选项“Microsoft Entra MFA”仅支持 Microsoft Entra 多重身份验证 (MFA)。

    显示“连接到服务器”窗口的屏幕截图。

  3. 建立连接后,对象资源管理器会显示工作区中连接的仓库及其各自的表和视图,所有这些都可供查询。

    显示连接的服务器名称在“对象资源管理器”窗格中显示位置的屏幕截图。

通过 SSMS(或 ADS)进行连接时,会看到 SQL 分析终结点和仓库都被列为“仓库”,很难区分这两种项目类型及其功能。 因此,我们强烈建议你采用命名约定,以便在使用 Microsoft Fabric 门户体验之外的工具时能够轻松区分这两种项目类型。 仅支持 SSMS 19 或更高版本。

使用 Power BI 进行连接

仓库或 Lakehouse SQL 分析终结点是 Power BI 中完全受支持的本机数据源,无需使用 SQL 连接字符串。 “数据”窗格将公开你有权直接访问的所有仓库。 这使你可以按工作区轻松找到仓库,并:

  1. 选择仓库。
  2. 选择实体。
  3. 加载数据 - 选择数据连接模式:导入或 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 建立连接时,检查以下依赖项:

  1. 添加项目。 选择“添加项目”并添加以下四个依赖项,然后选择“下载/更新”以加载所有依赖项。 例如:

    显示选择“下载”/“更新”的位置的屏幕截图。

  2. 选择“测试连接”,然后选择“完成”。

    “依赖项声明”选项卡的屏幕截图。

    <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 连接到 Microsoft Fabric 中的 Synapse 数据仓库,请使用 dbt-fabric 适配器。 同样,Azure Synapse Analytics 专用 SQL 池数据源也有自己的适配器,即 dbt-synapse

这两个适配器都支持 Microsoft Entra ID(以前为 Azure Active Directory)身份验证,并允许开发人员使用 az cli authentication。 但是,dbt-fabric 不支持 SQL 身份验证

DBT Fabric DW 适配器使用 pyodbc 库与仓库建立连接。 pyodbc 库是使用 Python 语言(采用 Python 数据库 API 规范 v2.0)的 ODBC 实施。  pyodbc 库使用 TDS(表数据流式处理)代理服务,通过 msodbc 连接结构中的 SQLDriverConnect 将连接字符串直接传递到数据库驱动程序。

有关详细信息,请参阅 Microsoft Fabric Synapse 数据仓库 dbt 适配器设置Microsoft Fabric Synapse 数据仓库 dbt 适配器配置

通过其他方式进行连接

任何第三方工具都可以通过 ODBC 或 OLE DB 驱动程序使用 SQL 连接字符串,以通过 Microsoft Entra ID(以前为 Azure Active Directory)身份验证连接到 Microsoft Fabric 仓库或 SQL 分析终结点。

自定义应用程序

在 Microsoft Fabric 中,仓库和湖屋 SQL 分析终结点提供 SQL 连接字符串。 可以从庞大的 SQL 工具生态系统访问数据,前提是它们可以使用 Microsoft Entra ID(以前为 Azure Active Directory)进行身份验证。 有关详细信息,请参阅 Microsoft SQL 数据库的连接库

最佳做法

建议在应用程序/ETL 作业中添加重试以构建复原能力。 有关详细信息,请参阅以下文档:

注意事项和限制

  • 不支持 SQL 身份验证。
  • Microsoft Fabric 仓库不支持多重活动结果集 (MARS)。 MARS 默认处于禁用状态,但如果连接字符串中包含 MultipleActiveResultSets,则应将其删除或设置为 false。
  • 如果收到此错误:“无法完成操作,因为已达到系统限制”,这是因为系统令牌大小达到限制。 导致此问题的原因一般是工作区有过多的仓库/SQL 分析端点,或者用户是过多 Entra 组的一部分,也可能是二者都有。 我们建议每个工作区具有 40 个或更少的仓库和 SQL 分析端点,以防出现此错误。 如果该问题仍然存在,请联系支持部门。
  • 如果收到错误代码 24804,并显示消息“由于系统更新而无法完成操作。 请关闭此连接,再次登录,然后重试操作”,或者收到错误代码 6005,并显示消息“对 sql Server 执行失败。 如果需要进一步支持,请联系 SQL Server 团队。”,这是由于临时连接丢失,可能是由于系统部署或重新配置。 若要解决此问题,请重新登录,然后重试。 若要了解如何在应用程序中构建复原能力和重试,请参阅最佳做法
  • 不支持来自 SQL Server 的链接服务器连接。