将 Power BI 连接到 Azure Databricks

Microsoft Power BI 是一种业务分析服务,它使用自助式商业智能功能提供交互式可视化效果,使最终用户能够自行创建报表和仪表板,而无需依赖于信息技术人员或数据库管理员。

将 Azure Databricks 作为数据源与 Power BI 配合使用时,可以将 Azure Databricks 的性能和技术优势带给所有业务用户(而不是仅带给数据科学家和数据工程师)。

可以将 Power BI Desktop 连接到 Azure Databricks 群集和 Databricks SQL 仓库。 还可以将 Power BI 报表发布到 Power BI 服务,让用户能够使用单一登录 (SSO),并传递用于访问报表的相同 Microsoft Entra ID(以前称为 Azure Active Directory)凭据来访问基础 Azure Databricks 数据。

要求

  • Power BI Desktop 2.85.681.0 或更高版本。 下载最新版本。 若要将 Unity Catalog 管理的数据与 Power BI 配合使用,必须使用 Power BI Desktop 2.98.683.0 或更高版本(2021 年 10 月版)。

    注意

    Power BI Desktop 需要在 Windows 上运行。 对于其他操作系统,替代做法是在物理主机或基于 Windows 的虚拟机上运行 Power BI Desktop,然后从所用的操作系统连接到该主机或虚拟机。

    如果使用低于 2.85.681.0 的 Power BI Desktop 版本,则还需要在 Power BI Desktop 所在的同一环境中安装 Databricks ODBC 驱动程序

  • Azure Databricks 个人访问令牌或你的 Microsoft Entra ID 帐户凭据。

    注意

    使用个人访问令牌进行身份验证时,Databricks 建议使用属于服务主体而不是工作区用户的个人访问令牌,这是一种安全最佳做法。 若要为服务主体创建令牌,请参阅管理服务主体的令牌

  • 一个 Azure Databricks 群集 或 Databricks SQL 仓库

使用 Partner Connect 将 Power BI Desktop 连接到 Azure Databricks

只需单击几下,即可使用 Partner Connect 从 Power BI Desktop 连接到群集或 SQL 仓库。

  1. 确保你的 Azure Databricks 帐户、工作区和已登录用户满足 Partner Connect 的要求

  2. 在边栏中,单击 Partner Connect button“Partner Connect”

  3. 单击“Power BI”磁贴。

  4. 在“连接到合作伙伴”对话框中,对于“计算”,选择要连接的 Azure Databricks 计算资源的名称。

  5. 选择“下载连接文件”。

  6. 打开下载的连接文件,这将启动 Power BI Desktop。

  7. 在 Power BI Desktop 中,输入你的身份验证凭据:

    • 个人访问令牌:输入你的 Azure Databricks 个人访问令牌。
    • Microsoft Entra ID:单击“登录”,然后按照屏幕上的说明操作。
    • 用户名/密码:不适用。
  8. 单击“连接” 。

  9. 从 Power BI 导航器中选择要查询的 Azure Databricks 数据。

    Power BI Navigator

手动将 Power BI Desktop 连接到 Azure Databricks

根据所选的身份验证方法,按照这些说明使用 Power BI Desktop 连接到群集或 SQL 仓库。 在 DirectQuery 模式下使用 Power BI 时,建议使用 Databricks SQL 仓库。

注意

若要更快地与 Power BI Desktop 连接,请使用 Partner Connect。

  1. 获取服务器主机名和 HTTP 路径

  2. 启动 Power BI Desktop。

  3. 单击“获取数据”或“文件”>“获取数据”。

  4. 单击“获取数据以开始”。

  5. 搜索“Databricks”,然后单击连接器:

    • Azure Databricks
  6. 单击“连接” 。

  7. 输入“服务器主机名”和“HTTP 路径”。

  8. 选择你的数据连接模式。 有关“导入”和 DirectQuery 之间的差异的信息,请参阅在 Power BI Desktop 中使用 DirectQuery

  9. 单击“确定”。

  10. 单击你的身份验证方法:

    • 个人访问令牌:输入你的 Azure Databricks 个人访问令牌。
    • Microsoft Entra ID:单击“登录”,然后按照屏幕上的说明操作。
    • 用户名/密码:不适用。
  11. 单击“连接” 。

  12. 从 Power BI 导航器中选择要查询的 Azure Databricks 数据。 如果为工作区启用了 Unity Catalog,请在选择架构和表之前选择一个目录。

    Power BI Navigator

使用自定义 SQL 查询

Databricks 连接器提供 Databricks.Query 数据源,使用户能够提供自定义 SQL 查询。

  1. 按照使用 Power BI Desktop 进行连接中所述的步骤创建连接,并使用“导入”作为数据连接模式。

  2. 在“导航器”中,右键单击最前面的包含所选主机名和 HTTP 路径的项,然后单击“转换数据”打开 Power Query 编辑器。

    Click Transform Data in the Navigator

  3. 在函数栏中,将函数名称 Databricks.Catalogs 替换为 Databricks.Query 并应用更改。 这会创建一个将 SQL 查询用作参数的 Power Query 函数。

  4. 在参数字段中输入所需的 SQL 查询,然后单击“调用”。 这会执行该查询并创建一个新表,查询结果为该表的内容。

使用 Power BI 服务访问 Azure Databricks 数据源

将报表发布到 Power BI 服务时,你使用个人访问令牌连接到 Azure Databricks。 在 Power BI 服务中,你还可以启用单一登录 (SSO),以便用户可以通过将其 Microsoft Entra ID 凭据传递给 Azure Databricks 来访问使用 DirectQuery 存储模式生成的报表。

  1. 将 Power BI 报表从 Power BI Desktop 发布到 Power BI 服务。

  2. 启用对报表和基础数据源的单一登录 (SSO) 访问。

    1. 在 Power BI 服务中,转到报表的基础 Azure Databricks 数据集,展开“数据源凭据”,然后单击“编辑凭据”。
    2. 在配置对话框中,选择“报表查看者只能使用直接查询通过其自己的 Power BI 标识访问此数据源”,然后单击“登录”。

    Enable SSO for Databricks data access

    选择此选项后,将使用 DirectQuery 处理对数据源的访问,并使用访问报表的用户的 Microsoft Entra ID 标识对其进行管理。 如果未选择此选项,则只有你(发布过报表的用户)才能访问 Azure Databricks 数据源。

自动 HTTP 代理检测

Power BI Desktop 版本 2.104.941.0 及更高版本(2022 年 5 月发布)内置支持检测 Windows 系统范围的 HTTP 代理配置。 下载最新版本

Power BI Desktop 可以自动检测和使用 Windows 系统范围的 HTTP 代理配置。

如果代理服务器未提供 CRL 分发点 (CDP),Power BI 可能会显示以下错误消息:

Details: "ODBC: ERROR [HY000] [Microsoft][DriverSupport] (1200)
-The revocation status of the certificate or one of the certificates in the certificate chain is unknown."

若要修复此错误,请完成以下步骤:

  1. 如果文件 C:\Program Files\Microsoft Power BI Desktop\bin\ODBC Drivers\Simba Spark ODBC Driver\microsoft.sparkodbc.ini 不存在,请创建该文件。

  2. 将以下配置添加到 microsoft.sparkodbc.ini 文件中:

    [Driver]
    CheckCertRevocation=0
    

Power BI Delta Sharing 连接器

使用 Power BI Delta Sharing 连接器,用户可以通过 Delta Sharing 开放协议来发现、分析和可视化与他们共享的数据集。 该协议利用 REST 和云存储实现跨产品和平台的数据集安全交换。

有关连接说明,请参阅 Power BI:读取共享数据

限制

  • Azure Databricks 连接器支持 Web 代理。 但是,不支持 .pac 文件中定义的自动代理设置。
  • 在 Azure Databricks 连接器中,不支持结合 DirectQuery 模式使用 Databricks.Query 数据源。
  • Delta Sharing 连接器加载的数据必须能够装入计算机的内存。 为确保这一点,连接器会将导入的行数限制为前面设置的“行限制”。

其他资源

支持