将 Power BI 连接到 Azure Databricks

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

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

从 Azure Databricks 发布到 Power BI Online

将 Azure Databricks 用作 Power BI Online 的数据源时,可以直接在 Databricks UI 中基于表或架构创建 PowerBI 数据集。

要求

  • 数据必须位于 Unity Catalog 上,并且计算(群集)必须启用 Unity Catalog。 目前不支持 Hive 元存储。
  • 必须拥有高级(高级容量或高级每用户许可证)Power BI 许可证。
  • 必须在“工作区设置”和“数据模型设置”下启用“用户可以在 Power BI 服务中编辑数据模型(预览版)”,以便在发布语义模型后对其进行编辑。 还可以使用表格编辑器编辑语义模型,只需使用 XMLA 终结点建立连接即可。
  • 如需在 PowerBI 工作区中启用 XML 写入,请按照此链接中的说明操作。
  • 如果工作区位于专用链接下,则需要在 Power BI 中手动更新数据集的数据源凭据。

如何使用

将 Azure Databricks 表发布到 Power BI 数据集

  1. 登录到 Databricks 工作区并导航到目录资源管理器。 选择要发布的架构/表。 请勿从 hive 元存储或示例目录中进行选择。
  2. 从计算下拉列表中,选择要在此 Power BI 发布中使用的数据仓库。
  3. 在目录资源管理器中打开要发布的所需表/架构后,单击右上角的“与 BI 工具一起使用”按钮。
  4. 在打开的下拉列表中,单击“发布到 Power BI 工作区”选项。

此时,将在窗口右侧打开一个菜单。 按照菜单给出的提示操作,如下所示:

  1. 单击“连接到 Microsoft Entra ID”,以使用 Microsoft 帐户进行身份验证。
  2. 在以下菜单中的“Power BI 工作区”下拉列表中,选择要发布到的所需工作区。 在“数据集模式”下拉列表中,选择“DirectQuery”(默认选中)或“导入”模式。
  3. 单击菜单底部的“发布到 Power BI”蓝色按钮。
  4. 等待数据集发布。 这通常需要大约 10 到 20 秒。
  5. 发布数据集后,蓝色按钮将具有标记为“打开 Power BI”的链接。 单击此链接可在新选项卡中打开新 Power BI 数据集。

功能和说明

  • 发布包含多个表的架构时,将发布包含列的所有表。 如果任何表中都没有列,则不会执行发布。
  • Databricks 中表列的注释将复制到 Power BI 中相应列的说明。
  • 已发布的数据集中将保留外键关系。 但是,Power BI 在任何两个表之间都仅支持一个活动状态的关系路径。 因此,当 Databricks 中的架构中存在多个路径时,Power BI 中的一些相应关系将设置为非活动状态。 你稍后可以在 Power BI 的数据模型视图中更改哪些关系是活动/非活动状态。
  • 将代表你创建个人访问令牌 (PAT),以允许 Power BI 访问语义模型。 稍后,可以在 Power BI 数据源设置中更改此身份验证方法。

将 Power BI Desktop 连接到 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 按钮“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 导航器

手动将 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 编辑器。

    单击“导航器”中的“转换数据”

  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 标识访问此数据源”,然后单击“登录”。

    为 Databricks 数据访问启用 SSO

    选择此选项后,将使用 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 连接器加载的数据必须能够装入计算机的内存。 为确保这一点,连接器会将导入的行数限制为前面设置的“行限制”。

其他资源

支持