将数据从Azure Databricks发布到基于云的业务分析平台Microsoft Power BI 服务,使用户能够连接、可视化和分析数据。 您可以直接从 Azure Databricks UI 将 Azure Databricks 表和架构发布到 Power BI 语义模型,或者将 Azure Databricks 作为数据源手动连接到 Power BI 服务。
将 Azure Databricks 作为数据源与 Power BI 服务集成时,可将 Databricks 的可缩放数据处理和性能引入所有用户。
如果要将 Power BI Desktop 连接到 Azure Databricks,请参阅 将 Power BI Desktop 连接到 Azure Databricks。
注释
适用于 Power BI 的 Azure Databricks 连接器支持 箭头数据库连接(ADBC) 驱动程序。 在此处了解详细信息。
要求
数据必须位于 Unity 目录中,并且计算必须启用 Unity 目录。 目前不支持 Hive Metastore。
必须拥有 Power BI Premium 许可证(高级容量或 Premium Per User(PPU))。
必须在 Power BI 容量中为 XMLA Endpoint 启用 Read Write。 请访问此链接获取说明。
如果使用计算机到计算机 (M2M) OAuth 进行身份验证,请确保已设置Azure Databricks服务主体。 请参阅在 Azure Databricks 上为 Power BI 配置服务主体。
如果用户希望在发布后编辑 Power BI Service 中的语义模型,则必须在工作区设置中启用 用户可以在 Power BI Service(预览版)中编辑数据模型。 还可以使用 表格编辑器 编辑语义模型,方法是使用 XMLA 终结点建立连接。
如果Power BI工作区使用专用链接,则必须在Power BI中手动更新数据集的数据源凭据。
Databricks SQL 仓库。
将 Azure Databricks 表发布到 Power BI 语义模型
将 Azure Databricks 用作 Power BI 服务的数据源时,可以直接通过 Databricks UI 从表或架构创建 Power BI 语义模型。
登录到 Databricks 工作区,然后单击
在边栏中点击目录以打开目录浏览器。
从左上角的下拉列表中选择一个 SQL 仓库计算资源,该资源位于 目录 标签下。
打开目录,然后选择要发布的架构或表。 请勿从 Hive Metastore 或示例目录中进行选择。
在右上角,单击“与 BI 工具一起使用”以获取架构,或单击“在仪表板中打开”以查看表。
选择 发布到 Power BI 工作区。
在“连接到合作伙伴”对话框中,单击“连接到 Microsoft Entra ID”进行身份验证。
Databricks 要求向已注册的 Entra ID 应用 Databricks 数据集发布集成授予以下权限:
Content.CreateDataset.ReadWrite.AllWorkspace.Read.All
有关详细信息,请参阅 Microsoft Entra Permissions。
如果不接受这些权限,你的组织可能需要为这些权限获得 Entra Admin 批准。 有关操作说明,请参阅查看管理员同意请求。
如果出现“需要管理员批准”的消息,您的 Power BI 全局管理员可能需要启用管理员同意请求,然后您才能继续操作。 请参阅 管理员同意被禁用时的授予权限。
在 Power BI 工作区 字段中,选择 Power BI 工作区。
在“数据集模式”下,选择 DirectQuery 或“导入”。
在 Power BI 中的
Authentication 方法中,选择 OAuth 或PAT (个人访问令牌) 。Databricks 建议使用 OAuth,因为它允许细粒度的访问控制和用户级审核。 可能需要在 数据源凭据下的 Power BI 语义模型设置页上配置 OAuth 凭据。 如果选择“个人访问令牌”(PAT),则会代表你创建 PAT,以允许Power BI访问语义模型。
默认情况下,为用户到机器(U2M)的 OAuth 启用一次性使用刷新令牌。 若要配置这些设置,请参阅 单用刷新令牌。
如果要使用 M2M OAuth 进行身份验证,可以在发布后在 Power BI 服务上配置此功能。 请参阅 设置 M2M OAuth。
在“数据集名称”中,选择“发布作为新数据集”或“使用现有数据集”。
选择“使用现有数据集”时,应注意以下几点:
- 如果语义模型存在,则不会被覆盖。 更新仅在给定的架构中附加新记录。
- 如果所选表不是现有语义模型的一部分,则会添加它。
- 如果表已在语义模型中,并且上次更新后添加了新列,则会自动添加这些列。
- 可以为新表选择不同的存储模型,以创建复合语义模型。
如果你希望在保持现有数据连接的同时更新现有语义模型,请选择“使用现有数据集”。 如果要使用新的语义模型创建新模型,请选择 “发布”作为新数据集。
- 如果语义模型存在,则不会被覆盖。 更新仅在给定的架构中附加新记录。
单击 发布到 Power BI。
语义模型发布可能需要 10 到 20 秒。 发布完成后,单击 “打开 Power BI ”,在新选项卡中打开 Power BI 语义模型。
以数据源的形式手动连接到 Azure Databricks
与其使用 Databricks UI 发布到 Power BI 语义模型,不如从 Power BI 服务中手动将 Azure Databricks 连接为数据源。
在 Power BI 服务边栏中,单击“ 创建”。
单击“获取数据”。
搜索并选择“Databricks”磁贴。
输入 Databricks SQL warehouse Server 主机名 和 HTTP 路径。
(可选)指定 高级选项 配置。
请确保设置唯一 的连接名称。
选择身份验证类型:
- Databricks 客户端凭据:使用 Azure Databricks 服务主体(机器到机器 OAuth)进行身份验证。 输入服务主体的客户端 ID 和客户端密码。 请参阅在 Azure Databricks 上为 Power BI 配置服务主体。
- 个人访问令牌:输入Azure Databricks个人访问令牌。
- Azure Active Directory:单击“登录”以使用Microsoft Entra ID帐户进行身份验证。
- 服务主体:使用Microsoft Entra ID服务主体进行身份验证。 输入服务主体凭据。
选择 隐私级别。
选择此连接是否可以与本地数据网关和 VNet 数据网关一起使用。
单击“ 下一步 ”以创建连接。
选择要导入到 Power BI 报表的表。
功能和说明
- 发布包含多个表的架构时,将发布包含列的所有表。 不会发布没有列的表。
- 在Azure Databricks中,表列的注释会被复制到Power BI中的相应列说明中。
- 已发布的数据集中将保留外键关系。 但是,Power BI仅支持任何两个表之间的一个活动关系路径。 当Azure Databricks架构中存在多个路径时,Power BI中的一些相应关系将设置为非活动状态。 稍后可以在Power BI的数据模型视图中更改哪些关系处于活动状态或处于非活动状态。
- 使用 OAuth 或本地数据网关时,可能需要在 Power BI 数据集设置页面上的“数据源凭据”下配置凭据。
- 目前,用户只能直接发布到其主租户中的Power BI工作区。 不支持在作为来宾用户的租户中进行发布。
当管理员同意被禁用时授予权限
禁用管理员同意后,用户无法请求审批需要权限的应用程序。 如果阻止或仅限于 Microsoft Entra 管理中心中已验证的发布者的用户同意,并且不允许管理员的同意请求,则可能会出现这种情况。
若要允许用户请求发布到 Power BI 服务的权限,你必须是 全局管理员 或 云应用程序管理员 才能启用和批准同意请求。
步骤 1:启用管理员同意请求
全局管理员或云应用程序管理员必须首先启用管理员同意请求:
在 Microsoft Entra 管理中心中,导航到 权限和许可。
单击边栏中的 “管理员同意设置 ”。
将 管理员同意请求 切换为 “是”。
(可选)若要指定可帮助评估同意请求的审阅者,请选择“审阅者”下的“添加用户”。 请注意,虽然审阅者可以评估请求,但只有全局管理员可以授予最终管理员同意。
配置 许可请求在(天)后过期 ,以设置许可请求在过期前保持有效时间。
用户现在可以提交 Power BI 服务的同意请求。
步骤 2:批准用户同意请求
用户提交同意请求后,全局管理员或云应用程序管理员必须批准该请求:
在 Microsoft Entra 管理中心中,单击侧边栏上的 管理员同意请求。
选择 Databricks 数据集发布集成请求。
单击“ 查看权限和同意”。
使用Microsoft Entra ID 登录,然后单击“ 接受”。
请求访问 Power BI 的用户现在可以发布到 Power BI 服务。
设置 M2M OAuth
从 Azure Databricks 发布到 Power BI 服务后,可以在 Power BI 服务上配置 M2M OAuth。 确保已在 Azure Databricks 上设置服务主体。 请参阅在 Azure Databricks 上为 Power BI 配置服务主体。
Important
如果您使用 Microsoft Entra ID 受管服务主体,则任何运行时间超过 1 小时的工作流都会失败。
可以从语义模型或服务网关配置 M2M OAuth。
对 M2M OAuth 使用语义模型
使用语义模型在 Power BI 服务上配置 Azure Databricks 连接以进行 M2M OAuth。 有关语义模型的详细信息,请参阅 Power BI 服务中的语义模型。
配置凭据:
在 Power BI 中,导航到包含语义模型的工作区。
单击 “更多选项”(水平烤肉串菜单) > “设置”。
导航到 数据源凭据 ,然后单击“ 编辑凭据”。
在 身份验证方法中,选择 “基本”。
在 “用户名”中,输入服务主体应用程序 ID。
在 “密码”中,输入服务主体机密。
为数据源选择适当的隐私级别设置。
如果要启用 SSO,请启用最后一个选项。
单击登录。
将服务网关用于 M2M OAuth
可以在 Power BI VNet 或本地数据网关中配置 Azure Databricks 连接,以实现在 Power BI 服务上的 M2M OAuth。 本地网关的 Databricks 客户端凭据需要 Power BI 网关 v3000.270.10 或更高版本。 有关 Power BI 网关的详细信息,请参阅 官方 Azure 站点。
Power BI 在其 REST API 中并不完全支持 VNet 数据网关。 因此,必须手动更新数据源连接,以在 UI 中使用 Databricks 客户端凭据 。
配置凭据:
在 Power BI 中,单击右上角的齿轮图标以访问设置。
单击“ 管理连接和网关”。
单击“ + 新建 ”创建新的连接。
选择 本地 或 虚拟网络。 这两个网关的所需凭据相同。
在 网关群集名称中,选择相应的网关。
在 “连接名称”中,输入连接名称。
在 “连接类型”中,选择 “Azure Databricks”。
在 服务器主机名中,输入 Azure Databricks SQL 仓库主机名。
在 HTTP 路径中,输入 SQL 仓库 HTTP 路径。
在 “身份验证”下,指定身份验证凭据。
- 在 身份验证方法中,选择 Databricks 客户端凭据。
- 在 Databricks 客户端 ID 中,输入服务主体客户端 ID。
- 在 Databricks 客户端密码中,输入服务主体客户端密码。
在 “隐私”级别,选择“ 组织”。
单击 “创建” 。
使用Power BI 服务访问Azure Databricks数据源
将报表发布到Power BI 服务时,可以使用个人访问令牌连接到Azure Databricks。
在Power BI 服务中,还可以启用单一登录(SSO),以便用户可以通过将Microsoft Entra ID凭据传递给Azure Databricks来访问使用 DirectQuery 存储模式生成的报表。
将Power BI报表从Power BI桌面发布到Power BI 服务。
启用对报表和基础数据源的单一登录 (SSO) 访问。
- 转到 Power BI 服务中报表所依赖的 Azure Databricks 数据集,展开 数据源凭据,然后单击 编辑凭据。
- 在配置对话框中,选择“报表查看者只能使用自己的 Power BI 标识通过直接查询访问此数据源”,然后单击“登录”。
选择此选项后,将使用 DirectQuery 处理对数据源的访问,并使用访问报表的用户的Microsoft Entra ID标识进行管理。 如果未选择此选项,则只有作为发布报表的用户有权访问Azure Databricks数据源。