本页介绍如何通过将 Azure Databricks 添加为数据连接,从 Microsoft Power Platform 连接到 Azure Databricks。 连接后,可以从以下平台使用 Azure Databricks 数据:
- Power Apps:生成可以读取和写入 Azure Databricks 的应用程序,同时保留 Azure Databricks 治理控件。
- Power Automate:生成流并添加可启用执行自定义 SQL 或现有作业的作并获取结果。
- Copilot Studio:使用 Azure Databricks 数据作为知识源生成自定义代理。
在您开始之前
在从 Power Platform 连接到 Azure Databricks 之前,必须满足以下要求:
- 你有一个Microsoft Entra ID(以前为 Azure Active Directory)帐户。
- 你拥有高级 Power Apps 许可证。
- 你有一个 Azure Databricks 帐户。
- 有权访问 Azure Databricks 中的 SQL 仓库 。
可选:使用 Azure 虚拟网络进行连接
如果 Azure Databricks 工作区使用虚拟网络,可通过两种方法进行连接:
将 Power Platform 与虚拟网络中的资源集成,而无需通过公共 Internet 公开它们。 若要连接到 Azure Databricks 工作区的专用终结点,请在配置与 Azure Databricks 的专用连接后执行以下作:
如果 Power Platform 虚拟网络(无论是主虚拟网络还是辅助网络)不同于 Azure Databricks 虚拟网络,请使用 虚拟网络对等互连 将虚拟网络与 Azure Databricks 连接。
有关虚拟网络的详细信息,请参阅 虚拟网络支持概述。
使用混合部署启用访问,其中具有公共终结点的前端专用链接受工作区 IP 访问列表的保护。 若要启用访问权限,请执行以下作:
- 在工作区级别启用公共访问。 有关详细信息,请参阅 配置工作区的 IP 访问列表。
- 将 AzureConnectors IP 范围或基于环境区域的特定 Power Platform IP 范围添加到 工作区 IP 访问列表。
可选:创建Microsoft Entra 服务主体
重要
如果 Azure Databricks 和 Power Platform 位于不同的租户中,则必须使用服务主体进行身份验证。
在连接之前,请完成以下步骤,以创建、设置和向 Azure Databricks 帐户或工作区分配Microsoft Entra 服务主体:
步骤 1:将 Azure Databricks 连接添加到 Power Platform
注释
如果使用的是 Copilot Studio,则必须使用 Power Apps 或 Power Automate 定义 Azure Databricks 连接器。 然后,可以在 Copilot Studio 中使用。
若要添加 Azure Databricks 连接,请执行以下作:
在 Power Apps 或 Power Automate 中,从边栏中单击“ 连接”。
单击左上角的“ + 新建连接 ”。
使用右上角的搜索栏搜索“Azure Databricks”。
选择 Azure Databricks 磁贴。
从下拉菜单中选择 身份验证类型 并输入身份验证信息。
如果 Power Platform 部署和 Azure Databricks 帐户位于同一Microsoft Entra 租户中,则可以使用 OAuth 连接。 输入以下信息:
- 对于 服务器主机名,请输入 Azure Databricks SQL 仓库主机名。
- 对于 HTTP 路径,请输入 SQL 仓库 HTTP 路径。
- 单击 “创建” 。
- 使用 Microsoft Entra ID 登录。
可在任何方案中使用服务主体连接。 在连接之前, 请创建Microsoft Entra 服务主体。 输入以下信息:
- 对于 客户端 ID,请输入服务主体 ID。
- 对于 客户端密码,请输入服务主体机密。
- 对于 租户,请输入服务主体租户。
- 对于 主机名,请输入 Azure Databricks SQL 仓库主机名。
- 对于 HTTP 路径,请输入 SQL 仓库 HTTP 路径。
- (可选)创建连接后,可以重命名或共享与团队成员的服务主体连接。
若要查找 Azure Databricks SQL 仓库连接详细信息,请参阅 获取 Azure Databricks 计算资源的连接详细信息。
单击 “创建” 。
步骤 2:使用 Azure Databricks 连接
在 Power Apps 或 Power Automate 中创建 Azure Databricks 连接后,可以使用 Azure Databricks 数据创建 Power 画布应用、Power Automate 流和 Copilot Studio 代理。
使用 Azure Databricks 数据生成 Power Canvas 应用
若要将 Azure Databricks 数据添加到应用程序,请执行以下作:
在最左侧导航栏中,单击“ 创建”。
单击“ 从空白画布开始 ”,然后选择所需的画布大小以创建新的画布应用。
在应用程序中,单击“添加数据”>“连接器”>“Azure Databricks”。 选择您所创建的 Azure Databricks 连接。
从“ 选择数据集 边栏”中选择目录。
从 “选择数据集 ”边栏中,选择要将画布应用连接到的所有表。
单击连接。
Power Apps 中的数据操作:
连接器支持创建、更新和删除操作,但仅支持有定义主键的表。 执行创建作时,必须始终指定主键。
Azure Databricks 支持 生成的标识列。 在这种情况下,主键值在创建行期间在服务器上自动生成,不能手动指定。
使用 Azure Databricks 数据生成 Power Automate 流
Azure Databricks 语句执行 API 和 作业 API 在 Power Automate 中公开,允许编写 SQL 语句并运行现有作业。 若要使用 Azure Databricks 来创建 Power Automate 流,请执行以下操作:
在最左侧导航栏中,单击“ 创建”。
创建流并添加任何触发器类型。
从新流中,单击 + 并搜索“Databricks”以查看可用的操作。
若要编写 SQL 查询,请选择以下作之一:
执行 SQL 语句:编写并运行 SQL 语句。 输入以下内容:
- 对于 Body/warehouse_id,请输入要对其执行 SQL 语句的仓库的 ID。
- 对于 Body/statement_id,请输入要执行的 SQL 语句的 ID。
有关高级参数的详细信息,请参阅 此处。
检查状态并获取结果:检查 SQL 语句的状态并收集结果。 输入以下内容:
- 对于 语句 ID,请输入在执行 SQL 语句时返回的 ID。
有关参数的详细信息,请参阅 此处。
取消语句的执行: 终止 SQL 语句的执行。 输入以下内容:
- 对于 语句 ID,请输入要终止的 SQL 语句的 ID。
有关参数的详细信息,请参阅 此处。
按区块索引获取结果: 按区块索引获取结果,该索引适用于大型结果集。 输入以下内容:
- 对于 语句 ID,输入要检索其结果的 SQL 语句的 ID。
- 对于 区块索引,请输入目标区块索引。
有关参数的详细信息,请参阅 此处。
若要与现有 Azure Databricks 作业交互,请选择以下作之一:
在 Copilot Studio 中使用 Azure Databricks 作为知识源
若要将 Azure Databricks 数据作为知识源添加到 Copilot Studio 代理,请执行以下作:
在边栏中,单击 “代理”。
单击“ + 新建代理”,选择现有代理或创建新代理。
- 通过输入消息来描述代理,然后单击“ 创建”。
- 或者,单击“ 跳过 ”以手动指定代理的信息。
在“ 知识 ”选项卡中,单击“ + 知识”。
单击 “高级” 。
选择 Azure Databricks 作为知识源。
输入数据位于的目录名称。
单击连接。
选择希望代理用作知识源的表,然后单击“ 添加”。
使用 Azure Databricks 数据创建 Dataverse 虚拟表
还可以使用 Azure Databricks 连接器创建 Dataverse 虚拟表。 虚拟表(也称为虚拟实体)将外部系统中的数据与 Microsoft Dataverse 集成。 虚拟表在 Dataverse 中定义表,而无需将物理表存储在 Dataverse 数据库中。 若要了解有关虚拟表的详细信息,请参阅 虚拟表(实体)入门。
注释
尽管虚拟表不使用 Dataverse 存储容量,但 Databricks 建议使用直接连接来提高性能。
必须具有系统定制器或系统管理员角色。 有关详细信息,请参阅 Power Platform 的安全角色。
按照以下步骤创建 Dataverse 虚拟表:
在 Power Apps 中,从边栏中单击“ 表”。
从菜单栏中单击“ + 新建表 ”,然后选择“ 创建虚拟表”。
选择现有的 Azure Databricks 连接或创建新的 Azure Databricks 连接。 若要添加新连接,请参阅 步骤 1:将 Azure Databricks 连接添加到 Power Platform。
- Databricks 建议使用服务主体连接来创建虚拟表。
单击 “下一步” 。
选择要表示为 Dataverse 虚拟表的表。
- Dataverse 虚拟表需要主键。 因此,视图不能是虚拟表,但具体化视图可以。
单击 “下一步” 。
如有必要,通过更新表的详细信息来配置虚拟表。
单击 “下一步” 。
确认数据源的详细信息,然后单击“ 完成”。
在 Power Apps、Power Automate 和 Copilot Studio 中使用 Dataverse 虚拟表。
有关 Dataverse 虚拟表的已知限制列表,请参阅 “已知限制”和“故障排除”。
执行批处理更新
如果需要执行批量创建、更新或删除操作以响应 Power Apps 输入,Databricks 建议实现 Power Automate 流。 若要实现此目的,请执行以下操作:
在 Power Apps 中使用 Azure Databricks 连接创建画布应用。
使用 Azure Databricks 连接创建 Power Automate 流,并使用 Power Apps 作为触发器。
在 Power Automate 触发器中,添加要从 Power Apps 传递到 Power Automate 的输入字段。
在 Power Apps 中创建集合对象以收集所有更改。
将 Power Automate 流添加到您的画布应用程序中。
从画布应用调用 Power Automate 流,并使用
ForAll
命令遍历集合。ForAll(collectionName, FlowName.Run(input field 1, input field 2, input field 3, …)
并发写入
行级并发可检测行级更改,并自动解决当并发写入操作更新或删除同一数据文件中的不同行时发生的冲突,因而可以降低并发写入操作之间的冲突。
Databricks Runtime 14.2 或更高版本中包含行级并发。 对于以下类型的表,默认情况下支持行级并发:
- 启用删除向量且未分区的表格
- 具有液体聚类分析的表,除非禁用删除向量
若要启用删除向量,请运行以下 SQL 命令。
ALTER TABLE table_name SET TBLPROPERTIES ('delta.enableDeletionVectors' = true);
有关 Azure Databricks 中的并发写入冲突的详细信息,请参阅 Azure Databricks 上的隔离级别和写入冲突。
将 Azure Databricks 添加到数据策略
通过将 Azure Databricks 添加到业务数据策略,Azure Databricks 无法与其他组中的连接器共享数据。 这会保护你的数据,并阻止它与不应有权访问这些数据的人员共享。 有关详细信息,请参阅 “管理数据策略”。
若要将 Azure Databricks 连接器添加到 Power Platform 数据策略,请执行以下作:
在任何 Power Platform 应用程序中,单击右上角的设置齿轮,然后选择 管理中心。
在边栏中,单击“ 策略>数据策略”。
- 如果使用新的管理中心,请单击 “安全>数据和隐私>数据策略”。
单击“ + 新建策略 ”或选择现有策略。
如果创建新策略,请输入名称。
选择一个环境添加到您的策略,然后单击上方的+ 添加到策略。
单击 “下一步” 。
搜索并选择 Azure Databricks 连接器。
单击“移至业务”并单击“下一步”。
查看策略,然后单击“ 创建策略”。
局限性
- Power Platform 连接器不支持政府云。
Power App 限制
以下 PowerFx 公式仅使用本地检索的数据计算值:
类别 | 公式 |
---|---|
表函数 |
|
集合体 |
|