本頁說明如何在建立連線後,使用以下平台的 Azure Databricks 資料:
- Power Apps:建置可讀取和寫入 Azure Databricks 的應用程式,同時保留 Azure Databricks 控管控件。
- Power Automate:建置流程並新增動作,以執行自訂 SQL 或現有作業並取得結果。
- Copilot Studio:利用你的 Azure Databricks 資料作為知識來源建立自訂代理,或將 Genie 代理作為工具連接。 請參閱 在 Microsoft Copilot Studio 中使用 Azure Databricks 資料。
Prerequisites
在你從 Power Platform 連接到 Azure Databricks 之前,必須先在 Microsoft Power Platform 中建立 Azure Databricks 的連接。
使用 Azure Databricks 數據建置 Power 平台畫布型應用程式
若要將 Azure Databricks 資料新增至您的應用程式,請執行下列動作:
- 在 Power Apps 最左邊的導覽欄,點選 「建立」。
- 按一下 [從空白畫布開始] ,然後選擇您想要的畫布大小,以建立新的畫布應用程式。
- 從您的應用程式中,按一下 新增資料 > 連接器 > Azure Databricks。 按一下您建立的 Azure Databricks 連線。
- 從 [選擇資料集 ] 提要字段中選取目錄。
- 從 選擇資料集 側邊欄,選取您要連接畫布應用程式的所有資料表。
- 按一下 連線。
Power Apps 中的數據作業:
連接器支援建立、更新和刪除作業,但僅適用於已定義主鍵的數據表。 執行建立作業時,您必須一律指定主鍵。
Azure Databricks 支援 生成的身份欄位。 在此情況下,主鍵值會在建立數據列期間自動在伺服器上產生,而且無法手動指定。
使用 Azure Databricks 資料建立 Power Automate 流程
Azure Databricks 陳述式執行 API 和 作業 API 會在 Power Automate 中公開,可讓您撰寫 SQL 陳述式並執行現有的作業。 若要使用 Azure Databricks 作為動作來建立 Power Automate 流程,請執行下列動作:
在 Power Automate 最左邊的導覽列,點選 「建立」。
建立流程並新增任何觸發類型。
從新的流程中,按兩下 + 並搜尋 「Databricks」,以查看可用的動作。
若要撰寫 SQL 查詢,請選取下列其中一個動作:
執行 SQL 語句:撰寫並執行 SQL 語句。 輸入下列內容:
- 針對 Body/warehouse_id,輸入要執行 SQL 語句的倉庫 ID。
- 針對 本文/statement_id,輸入要執行的 SQL 語句的 ID。
想了解更多進階參數 ,請參閱 API 文件。
檢查狀態並取得結果:檢查 SQL 語句的狀態並收集結果。 輸入下列內容:
- 針對 [語句標識符],輸入執行 SQL 語句時傳回的標識碼。
欲了解更多參數資訊,請參閱 API 文件。
取消語句的執行: 終止執行 SQL 語句。 輸入下列內容:
- 針對 [語句標識符],輸入要終止之 SQL 語句的標識碼。
欲了解更多參數資訊,請參閱 API 文件。
依區塊索引取得結果: 依區塊索引取得結果,適用於大型結果集。 輸入下列內容:
- 針對 [語句標識符],輸入您要擷取其結果的 SQL 語句識別碼。
- 針對 [區塊索引],輸入目標區塊索引。
關於參數的更多資訊,請參閱 API 文件。
若要與現有的 Azure Databricks 作業互動,請選取下列其中一個動作:
使用 Azure Databricks 數據建立 Dataverse 虛擬數據表
您也可以使用 Azure Databricks 連接器建立 Dataverse 虛擬數據表。 虛擬數據表,也稱為虛擬實體,整合來自外部系統的數據與 Microsoft Dataverse。 虛擬數據表會在 Dataverse 中定義數據表,而不需將實體數據表儲存在 Dataverse 資料庫中。 若要深入瞭解虛擬數據表,請參閱開始使用虛擬數據表(實體)。
Note
雖然虛擬資料表不佔用 Dataverse 的儲存空間,Databricks 仍建議使用直接連線以提升效能。
您必須具有系統自訂工具或系統管理員角色。 如需詳細資訊,請參閱 Power Platform 的安全性角色。
請遵循下列步驟來建立 Dataverse 虛擬資料表:
- 在 Power Apps 中,從側邊欄中,點擊 [數據表]。
- 從功能表列單擊 [+ 新增數據表 ],然後選取 [建立虛擬數據表]。
- 選取現有的 Azure Databricks 連線,或建立與 Azure Databricks 的新連線。 若要新增連線,請參閱 在 Microsoft Power Platform 建立 Azure Databricks 連線。
- Databricks 建議使用服務主體連線來建立虛擬資料表。
- 按一下「下一步」。
- 選取要作為 Dataverse 虛擬資料表的資料表。
Note
Dataverse 虛擬數據表需要主鍵。 鍵必須是 GUID(字串)、bigInt,或整數。 視圖不能是虛擬表格,但具體化的視圖可以。
- 按一下「下一步」。
- 如有需要,更新資料表的詳細資訊,以配置虛擬資料表。
- 按一下「下一步」。
- 確認數據源的詳細數據,然後按兩下 [ 完成]。
- 在 Power Apps、Power Automate 和 Copilot Studio 中使用 Dataverse 虛擬數據表。
如需 Dataverse 虛擬數據表的已知限制清單,請參閱 已知限制和疑難解答。
您應該使用虛擬表還是直接連接?
Dataverse 虛擬資料表和直接連線提供不同的優勢。 您選擇的方法取決於您的使用案例。 下表總結了每種方法的主要功能。
| 資料存取方式 | 終端使用者的認證透過 OAuth 傳遞 | 零拷貝 | 參閱 | 寫入 Azure Databricks | 畫布應用程式 | 模型導向應用程式 |
|---|---|---|---|---|---|---|
| 直接連線 | ✔ | ✔ | ✔ | ✔ | ✔ | |
| 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 中並行寫入衝突的資訊,請參閱 隔離層級與寫入衝突。
局限性
Power Apps 的限制
以下 PowerFx 公式僅利用本地取得的資料計算數值:
| 類別 | Formula |
|---|---|
| 表格函數 |
|
| Aggregation |
|