Important
Power BI 任务功能为 公共预览。
虽然可以从 Azure Databricks 工作区手动发布到 Microsoft Power BI Online ,但可以使用 Power BI 任务自动协调 Power BI 语义模型。
若要详细了解如何在 Azure Databricks UI 中发布到 Power BI,请参阅 从 Azure Databricks 发布到 Power BI 服务。
Requirements
- 必须遵循与手动发布到 Power BI 时相同的要求。 有关详细信息,请参阅 从 Databricks 发布到 Power BI Online。
- 拥有或创建 Power BI 连接。 请参阅在 Unity 目录中为业务流程创建 Power BI 连接。
- 必须拥有 Unity Catalog 中该连接的
USE CONNECTION权限,以及用于访问需要使用的表和 SQL 仓库的权限。 请参阅 管理 Lakeflow 作业的标识、权限和特权。
配置 Power BI 任务
配置 Power BI 连接后,可以创建一个任务,以使用该连接自动发布。
注释
作业界面会根据其他已配置的设置动态显示选项。
开始配置 Power BI 任务的流程:
导航到“作业”UI 中的“ 任务 ”选项卡,找到要向其添加任务的作业。
单击
添加任务。
输入“任务名称”。
在 “类型 ”下拉菜单中,选择 “Power BI”。
配置任务属性(请参阅下表了解属性及其用法)。
(可选)若要配置重试、运行持续时间或流式积压工作阈值或通知,请参阅 “高级任务设置”。
单击“保存任务”。
注释
Databricks 建议将 Azure Databricks 服务主体设置为任务的“运行身份”标识。 有关最佳实践,请参阅 作业治理的最佳实践。 服务主体需要必要的特权才能访问任务使用的 Databricks 表、架构、Power BI 连接和 SQL 仓库。
编辑任务时,将使用当前用户的凭据,但在运行任务时,将使用“运行方式”标识。 标识必须具有运行任务的正确权限。
| Power BI 任务属性 | Description |
|---|---|
| SQL 仓库 | 在“导入”模式下处理刷新的 SQL 仓库,或语义模型的“DirectQuery”模式下的查询。 Power BI任务需要 SQL 仓库。 不支持常规用途计算。 |
| Power BI 连接 | 此任务的 Power BI 连接。 该任务使用此连接提取 Power BI 工作区和语义模型,并发布到 Power BI。 请参阅在 Unity 目录中为业务流程创建 Power BI 连接。 |
| Power BI 工作区 | 用于放置发布的语义模型的 Power BI 工作区。 |
| Power BI 语义模型 | 要发布的 Power BI 语义模型。 选择现有模型,或键入新的模型名称,然后单击“ 发布新的语义模型 <名称>”。 |
| 覆盖现有模型 | 默认情况下,元数据更新仅追加到现有模型。 选中此框可确保在运行任务时将所有元数据和数据更新传播到 Power BI 语义模型。 |
| Power BI 查询模式 | 要发布的表的默认查询模式。 选择 DirectQuery 后,还可以使用 “配置表查询模式 ”属性对各个表设置查询模式。 以下值之一:
Power BI 查询模式也称为 Power BI 中的存储模式。 有关查询模式的详细信息,请参阅 Power BI 服务中的语义模型模式。 |
| 要更新的表 | 语义模型的源表和架构。 如果选择此属性的架构,则在运行任务时,该架构下的所有表都用于更新。 该任务更新任何新表、列、注释和主键/外键关系。 |
| 身份验证方法 | 定义语义模型如何返回到所选 SQL 仓库进行身份验证。 使用 OAuth 时,可能需要在第一个任务运行后在 Power BI 上配置凭据。 如果你无法在 Power BI UI 中为配置设置服务主凭证,请参见“用 REST API 配置凭证”。 使用 PAT 时,会为 Run as 身份生成并嵌入一个 PAT。 |
| 配置表查询模式 | 选择 DirectQuery 作为 Power BI 查询模式时,可以选择将单个表设置为使用 双 存储模式。 设置为 双 存储模式的表可以充当 导入 模式或 DirectQuery 模式,具体取决于查询的上下文。 有关详细信息,请参阅 Power BI 服务中的语义模型模式。 |
| 更新后刷新 | 如果选择 “导入 ”作为查询模式,则此选项可用。 默认情况下,仅更新模型元数据,但如果选中此复选框,则还会触发数据刷新(该刷新查询 SQL 仓库)。 可以在 Power BI 的刷新历史记录中看到此刷新。 |
若要编辑、克隆、禁用或删除此任务,请参阅 Lakeflow 作业中的配置和编辑任务。
使用 REST API 配置凭据
若要使用 REST API 而不是 Power BI UI 设置语义模型的服务主体凭据,请使用Azure Fabric连接 API 或Power BI REST API:
- Microsoft Fabric Connections API 为连接设置凭证,适用于所有连接类型:云端、本地数据网关和 VNet 数据网关。
- Microsoft Power BI REST API 在数据源上设置凭证。 它适用于本地数据网关连接和云数据源。
若要使用Azure Databricks服务主体进行身份验证,请使用Basic具有服务主体应用程序 ID 的凭据类型作为用户名和密码作为密码。
Azure Fabric 连接 API
使用Azure Fabric连接 API 更新语义模型所使用的连接上的凭据。 Fabric API 需要 Microsoft Entra ID 访问令牌,并且你所使用的身份必须具有该连接的权限(或者,对于网关连接,具有 Power BI 网关管理员权限)。 关于如何获取令牌,请参见 Microsoft Fabric REST API 文档。
具体步骤取决于 Power BI 是通过云端连接还是本地数据网关连接。
云连接
列出该标识可以访问的连接,并找到用于你的 Azure Databricks SQL 仓库的
ShareableCloud连接。 注意它是id。GET https://api.fabric.microsoft.com/v1/connections有关详细信息,请参阅有关列表连接的Azure文档。
使用连接
id更新该连接的凭据。 直接传递服务负责人凭证:PATCH https://api.fabric.microsoft.com/v1/connections/{connectionId}{ "connectivityType": "ShareableCloud", "credentialDetails": { "credentials": { "credentialType": "Basic", "username": "<service-principal-application-id>", "password": "<service-principal-secret>" } } }有关详细信息,请参阅有关更新连接的Azure文档。
On-premises data gateway (本地数据网关)
列出该标识可以访问的连接,并找到用于你的 Azure Databricks SQL 仓库的
OnPremisesGateway连接。 注意它的id和gatewayId。GET https://api.fabric.microsoft.com/v1/connections有关详细信息,请参阅有关列表连接的Azure文档。
使用连接的
gatewayId获取网关的公钥:GET https://api.fabric.microsoft.com/v1/gateways/{gatewayId}有关详细信息,请参阅有关获取网关的Azure文档。
用网关的公钥加密服务主体凭证。 有关详细信息,请参阅有关以编程方式配置凭据的Azure文档。
更新该连接,使用第一步中的连接
id。 为每个网关成员发送一条values条目:PATCH https://api.fabric.microsoft.com/v1/connections/{connectionId}{ "connectivityType": "OnPremisesGateway", "credentialDetails": { "credentials": { "credentialType": "Basic", "values": [ { "gatewayId": "<gateway-id>", "encryptedCredentials": "<encrypted credential data>" } ] } } }有关详细信息,请参阅有关更新连接的Azure文档。
其他连接类型(如 VNet 数据网关 VirtualNetworkGateway)也使用同一端点,并附带该类型对应的凭据负载。 有关完整请求架构,请参阅有关更新连接的Azure文档。
Power BI REST API
你也可以使用 Power BI REST API 更新数据源的凭证。 Power BI REST API 需要一个 Microsoft Entra ID 访问令牌。 无论Power BI通过云数据源还是本地数据网关连接,步骤相同,但需求有所不同:
-
云数据源(无网关):你必须是语义模型的所有者。 直接发送凭据,并将
encryptionAlgorithm设置为None。 -
本地数据网关:您必须拥有网关管理员权限。 用网关的公钥加密凭证,并设置为
encryptionAlgorithmRSA-OAEP。
获取语义模型的数据源,并找到 Azure Databricks 数据源。 注意它的
datasourceId和gatewayId。 Power BI 将云数据源绑定到自动配置的云网关上,因此即使没有本地网关,AgatewayId也存在。GET https://api.powerbi.com/v1.0/myorg/datasets/{datasetId}/datasources有关详细信息,请参阅有关获取数据源的Azure文档。
更新该数据源的凭据,将您的连接类型设置为
encryptionAlgorithm。 以下示例为云数据源,encryptionAlgorithm设置为None:PATCH https://api.powerbi.com/v1.0/myorg/gateways/{gatewayId}/datasources/{datasourceId}{ "credentialDetails": { "credentialType": "Basic", "credentials": "{\"credentialData\":[{\"name\":\"username\",\"value\":\"<service-principal-application-id>\"},{\"name\":\"password\",\"value\":\"<service-principal-secret>\"}]}", "encryptedConnection": "Encrypted", "encryptionAlgorithm": "None", "privacyLevel": "None" } }对于本地数据网关,用网关的公钥加密凭证,将值替换
credentials为加密数据,并将 设encryptionAlgorithm为RSA-OAEP。有关详细信息,请参阅有关更新数据源的Azure文档。 关于获取网关公钥并加密凭证的PowerShell示例,请参见 Databricks M2M OAuth凭证管理示例。 有关加密凭据的详细信息,请参阅有关以编程方式配置凭据的Azure文档。
故障排除
当Power BI任务更新时,请勿在Power BI 服务中编辑语义模型。 这样做可能会导致模型卡在 待定更改 状态。
有关排查发布到 Power BI 问题的信息,请参阅“排查发布到 Power BI 问题”。 如果仍遇到问题,可以提交产品反馈。 请参阅 提交产品反馈。