在此端到端教程中,您會建立一個範例混合分析工作流程,撰寫至 Fabric 中的 SQL Database。 為了協助說明端對端升級體驗,我們著重於數據標註案例的跨領域工作流程。
在本教學課程中,您將瞭解如何:
- 在 Fabric 中建立 SQL 資料庫。
- 設定用戶資料函式以回寫至 SQL 資料庫。
- 整合用戶數據函式與 Power BI 報表。
如果您沒有現有的 Fabric 容量, 請啟動 Fabric 試用版。
備註
Translytical 工作流程功能目前處於公開預覽狀態。
先決條件
- 在 Power BI Desktop 中啟用 必要的預覽功能 。
- Power BI Desktop。 如果您沒有在裝置上安裝Power BI Desktop,請遵循 取得Power BI Desktop中的指示。
概觀
建立跨事務工作流程需要三項工作,才能啟用自動化案例:
儲存數據
從現有的 Fabric 數據源開始。 在本教學課程中,我們會使用 SQL 資料庫搭配範例數據。
處理數據
編寫一個可從 Power BI 報表中調用的 Fabric 用戶數據函數。 此函式可以執行任意數目的動作,從編輯報表的數據源到傳送通知,以在核准管線中建立工作專案。 在本教學課程中,我們會建立用戶數據函式,以取得新的產品描述,並將其寫入 SQL 資料庫。
視覺化資料
建立 Power BI 報表,以顯示呼叫數據函式的源數據和互動式元素。 在本教學課程中,我們會使用文字交叉分析篩選器,從使用者收集產品描述,並將其傳送給用戶數據函式。 然後,報表會重新整理以顯示更新的數據表。
建立 SQL 資料庫
此案例會使用 SQL 資料庫中的 AdventureWorksLT 數據集範例。
請遵循在 網狀架構入口網站中建立 SQL 資料庫中的步驟。
記下您提供給 SQL 資料庫的名稱。 您稍後會在教學課程中使用此值。
建立資料庫之後,請選擇 [範例數據 ] 選項,將 AdventureWorksLT 範例數據載入空白資料庫。
建立用戶數據函式
在工作區中建立用戶數據函式。
在 Power BI 或 Fabric 中瀏覽至您選擇的工作區。
選擇 新增專案。
從 [開發資料] 群組中選取 [使用者資料函數]。
提供新用戶數據函式的名稱,例如 sqlwriteback,然後選取 [ 建立]。
記下您使用的名稱,以及工作區名稱。 您稍後會在教學課程中使用這兩個值。
選取 [新增函式]。
連接到您的 SQL 資料庫
將用戶數據函式連接到您先前建立的 SQL 資料庫。 繼續之前,請確定您具有 SQL 資料庫的訪問許可權。
針對您新的用戶數據功能,在頁面上選擇管理連線。
選取 [新增數據連線]。
選取您先前建立 的 AdventureWorksLT SQL 資料庫,然後選取 [ 連線]。
建立連接時,會自動為連接建立別名。 記下稍後在本教學課程中使用的 Alias 值。
關閉 [ 連線] 頁面以返回您的用戶數據函式。
新增函式程序代碼
將程式代碼新增至用戶數據函式,以便將數據寫入 [SalesLT].[ProductDescription] SQL 資料庫的 AdventureWorksLT 範例中的數據表。
根據預設,用戶數據函式會針對 SQL 連線使用 pyodbc,因此建議您針對此案例使用連結庫。
若要將用戶數據函式連接到Power BI按鈕,函式必須傳回字串。
以下列範例取代使用者數據函式中的預設程式代碼:
import fabric.functions as fn import uuid udf = fn.UserDataFunctions() @udf.connection(argName="sqlDB",alias="<REPLACE_WITH_CONNECTION_ALIAS>") @udf.function() # Take a product description and product model ID as input parameters and write them back to the SQL database # Users will provide these parameters in the PowerBI report def write_one_to_sql_db(sqlDB: fn.FabricSqlConnection, productDescription: str, productModelId:int) -> str: # Error handling to ensure product description doesn't go above 200 characters if(len(productDescription) > 200): raise fn.UserThrownError("Descriptions have a 200 character limit. Please shorten your description.", {"Description:": productDescription}) # Establish a connection to the SQL database connection = sqlDB.connect() cursor = connection.cursor() # Insert data into the ProductDescription table insert_description_query = "INSERT INTO [SalesLT].[ProductDescription] (Description) OUTPUT INSERTED.ProductDescriptionID VALUES (?)" cursor.execute(insert_description_query, productDescription) # Get the result from the previous query results = cursor.fetchall() # In real-world cases, call an API to retrieve the cultureId # For this example, generate a random Id instead cultureId = str(uuid.uuid4()) # Insert data into the ProductModelProductDescription table insert_model_description_query = "INSERT INTO [SalesLT].[ProductModelProductDescription] (ProductModelID, ProductDescriptionID, Culture) VALUES (?, ?, ?);" cursor.execute(insert_model_description_query, (productModelId, results[0][0], cultureId[:6])) # Commit the transaction connection.commit() cursor.close() connection.close() return "Product description was added"在範例中尋找下列程式代碼列:
@udf.connection(argName="sqlDB",alias="<REPLACE_WITH_CONNECTION_ALIAS>")將 別名 佔位元替換成前一節中的別名值。
您可以再次開啟 [ 管理連線 ] 頁面,以檢視連線別名。
測試範例程序代碼
如果您想要到目前為止測試範例程序代碼,請使用本節中的步驟。
選取 [] 發佈 []。
發佈函式之後,將滑鼠停留在 [函式瀏覽器] 功能表中的函式 write_one_to_sql_db 上,然後選取 [執行] 圖標。
在 [ 執行] 頁面上,提供兩個必要參數的範例數據:
- productDescription:string
- productModelId:介於 1 到 127 之間的整數
選擇 執行。
檢閱函式輸出和產生的記錄。
當您完成測試時,請關閉 [ 執行 ] 頁面。
如果您在執行範例程式代碼時收到任何錯誤,請檢查您的帳戶是否具有資料庫的訪問許可權。
授與使用者權力(選擇性)
如果其他使用者與呼叫此函式的Power BI報表互動,請授與他們 執行函式 許可權。
在函式頁面上,選取 [共享]。
選取 [ 建立及傳送連結 ] 彈出視窗的第一個方塊。
從 [其他許可權] 列表中選取 [執行函式並檢視函式記錄],然後選取 [套用]。
在 [ 輸入名稱或電子郵件位址 ] 方塊中,提供您想要擁有此函式許可權的使用者或群組。
選擇 傳送。
建立 Power BI 報表
在本節中,您會建立 Power BI 報表,以從您在上一節中建立的 SQL 資料庫提取數據。
線上到 SQL 資料庫
將您的 SQL 資料庫作為報表的數據源進行連線。
在 Power BI Desktop 中,建立新的報表。
選取 [OneLake 目錄>SQL 資料庫]。
在 OneLake 目錄 視窗中,選取您在上一節中建立的資料庫。 例如 ,AdventureWorksLT。 然後,選取 [連線]。
請遵循任何提示向資料庫進行驗證。
成功連線到資料庫之後, [導覽器 ] 視窗隨即開啟。 選取下列數據表,然後選取 [載入]:
SalesLT.ProductDescriptionSalesLT.ProductModelSalesLT.ProductModelProductDescription
出現提示時,選擇 [DirectQuery ] 作為連線模式,然後選取 [ 確定]。
DirectQuery 模式是即時連線,可讓報表重新整理數據並反映任何數據修改。 如需詳細資訊,請參閱 Power BI 中的 DirectQuery。
建置 Power BI 報表
在本節中,使用您載入 Power BI 報表的數據來建置視覺效果。
在 [ 資料] 選單中,選取下列數據行:
SalesLT.ProductModel>NameSalesLT.ProductModelProductDescription>ProductModelID
報表視窗中會出現兩欄數據表。
在 [ 視覺效果] 功能表中,選取 [文字交叉分析篩選器] 圖示。
小提示
如果您沒有看到文字交叉分析篩選器圖示,請確定已在Power BI Desktop 中啟用 文字交叉分析篩選器 預覽功能。 如需詳細資訊,請參閱 必要的預覽功能。
報表視窗中會出現文字交叉分析篩選器視覺效果。
選取文字交叉分析篩選器,並使用 [格式化視覺效果>一般>標題] 選項,為文字交叉分析篩選器提供下列標題:
Write a new product description。在任務欄上,選取 [ 插入 ] 功能表,並將 [空白 ] 按鈕新增至報表。 將按鈕拖曳到文字切片器的下方。
選取按鈕,然後展開 [格式] 按鈕窗格中的 [動作] 選項。 將 動作 單選按鈕切換至 開啟。
為您的按鈕提供下列值:
參數 價值觀 型別 選取 數據函式 工作空間 選取工作區,其中包含您在上一節中建立的用戶數據函式。 函式集 選取包含數據函式的函式集。 例如 ,sqlwriteback。 數據函式 選取您的數據函式。 例如, write_one_to_sql_db。 小提示
如果您沒有看到 數據功能 選項,請確定 Power BI 桌面中已啟用 Translytical 任務流程 預覽功能。
如果您確實看到 [數據函式 ] 選項,但看不到您的用戶數據函式,請確定您的數據函式會傳回字串。
選取數據函式之後,會出現更多參數來代表函式採用的參數。 提供下列值:
參數 價值觀 productDescription 從報表中選取文字篩選器,撰寫新的產品描述。 productModelId 選取 [ 條件式格式設定 ][fx] 按鈕。 新的視窗隨即開啟。
針對 [格式樣式 ] 參數,保留預設 的 Field 值 。
針對 我們應該以哪個欄位為基礎? 參數,選取 所有資料>SalesLT.ProductModel>ProductModelID。摘要 選取 [最大值]。 選取 [確定 ] 以完成動作組態。 動作詳細資料看起來應該像下列範例:
選取按鈕,然後展開 [格式] 按鈕窗格中的 [樣式] 選項。 將 文字單選按鈕調為開啟,並為按鈕
Enter添加標籤。在「樣式」選項中,將「套用設定到」選項切換為「載入」。
載入狀態是數據函式按鈕可用的唯一狀態,可用來定義數據函式執行時出現的樣式選項。
展開 [ 文字] 選單,並將按鈕文字值取代為
Submitting。展開 [圖示] 功能表。
根據預設,資料函式按鈕在載入狀態時具有 旋轉圖示 類型。
使用下列變更調整圖示樣式:
參數 價值觀 填充 將左邊框間距變更為 20 px。圖示大小 將預設的 Auto 值取代為 20。在 [ 視覺效果] 窗格中,選取 [ 數據表 ] 圖示以插入新的數據表。
在 [ 資料] 窗格中,選取要新增至數據表的下列數據行:
SalesLT.ProductModel>NameSalesLT.ProductDescription>DescriptionSalesLT.ProductDescription>ModifiedDate
選擇性報表修改
如同任何 Power BI 報表,有許多方式可以自定義外觀並改善此報表的功能。 請考慮下列其中一些選項:
- 將標題新增至兩個數據表。 例如,選取產品和產品描述。
- 將文字篩選器設置為在提交新產品描述後自動清除。 若要這樣做,請選取觸發用戶數據函式的按鈕。 在 [格式] 按鈕> [動作] 選單中,將 [自動清除] 切換為 [開啟]。
- 在觸發用戶數據功能後,取消報表的自動重新整理。 在此情境中,刷新資料並看到新產品描述出現在表格中會很有幫助。 在其他案例中,您可能不需要或想要重新整理報表。 若要關閉此設定,請選取觸發用戶數據函式的按鈕。 在 [格式按鈕] >動作 選單中,將 [重新整理報表(成功結果之後)] 切換設置為 [關閉]。
執行您的 Translytical 任務流程
您可以在 Power BI Desktop 中測試 Translytical 工作流程的功能。 但是,如果您想要查看最精確的用戶體驗,請將報表發佈至 Power BI 服務,並在 Web 中進行測試。
發佈報表
您已在 Power BI Desktop 中建置報表。 在本節中,您會發佈報表,讓使用者可以在入口網站中與其互動。
在 [ 首頁 ] 工具列功能表中,選取 [ 發佈]。
選取您要發佈此報表的Power BI工作區,然後選取 [ 選取]。
報表完成發佈之後,請選取連結以在Power BI中開啟 <REPORT_NAME.pbix>。
小提示
當您在Power BI入口網站中開啟報表時,可能會看到錯誤,指出 數據源遺漏認證,且無法存取。 若要解決此錯誤,請使用下列步驟:
- 開啟報表的語意模型,並流覽至 [ 檔案>設定]。
- 如果尚未設定,請展開 [數據源認證 ] 設定。
- 選取 [編輯認證]。
- 從下拉功能表中選擇您的 驗證方法 。 例如, Basic 會採用使用者名稱和密碼,而 OAuth2 會使用您目前的帳戶啟用單一登錄。
- 如有需要,請提供必要資訊,然後選取 [ 登入]。
現在,您在Power BI 服務中提供的Power BI報表中有一個 Translytical 工作流程。
執行您的 Translytical 任務流程
在本節中,您會在Power BI入口網站中與報表互動,以測試您所建置的 Translytic 工作流程。
只有獲授權觸發數據函式的使用者才能使用這項功能。 任何未經授權的用戶都會收到 錯誤 回應。
- 在 Power BI 中開啟報表。
- 從列出名稱和標識碼的產品數據表中選取產品。 此選擇會將內容傳遞至您想要更新的產品的文字篩選器。 您也會看到產品描述數據表篩選,以顯示所選產品的所有目前描述。
- 在輸入文字框中撰寫新的產品描述。
- 選取箭號圖示或使用 Tab 鍵來提交輸入。 選取產品並提供描述之後,您會看到按鈕切換為已啟用狀態。
- 選取按鈕以執行使用者資料功能。
如果轉譯工作流程正常運作,您會收到一則訊息,顯示 您報表的動作已成功提交。 產品描述數據表會重新整理以顯示新的描述。
如果跨交易分析流程出現問題,您會收到一則訊息,上面寫著 出現問題。 選取 [檢視詳細數據 ] 以取得失敗原因的詳細資訊。 執行失敗函式的一些常見原因包括:
- 數據驗證:輸入值不符合用戶數據函式中定義的數據驗證規則。
- 逾時錯誤:函式或進程所花費的時間超過允許的時間才能完成。
- 設定不當:設定報表元素時發生錯誤,通常是按鈕,可能會導致工作流程失敗或產品非預期的結果。
- 未經授權的使用者:用戶沒有觸發數據函式的許可權。
後續步驟
- 若要取得可納入工作流程之跨式工作流程的想法,請參閱 Translytical 工作流程範例。
- 若要深入瞭解如何將數據函式按鈕整合到Power BI報表的選項,請參閱 在Power BI 中建立數據函式按鈕。