共用方式為


教學指南:創建跨分析工作流程(預覽)

在此端到端教程中,您會建立一個範例混合分析工作流程,撰寫至 Fabric 中的 SQL Database。 為了協助說明端對端升級體驗,我們著重於數據標註案例的跨領域工作流程。

在本教學課程中,您將瞭解如何:

  • 在 Fabric 中建立 SQL 資料庫。
  • 設定用戶資料函式以回寫至 SQL 資料庫。
  • 整合用戶數據函式與 Power BI 報表。

如果您沒有現有的 Fabric 容量, 請啟動 Fabric 試用版

備註

Translytical 工作流程功能目前處於公開預覽狀態。

先決條件

概觀

建立跨事務工作流程需要三項工作,才能啟用自動化案例:

  • 儲存數據

    從現有的 Fabric 數據源開始。 在本教學課程中,我們會使用 SQL 資料庫搭配範例數據。

  • 處理數據

    編寫一個可從 Power BI 報表中調用的 Fabric 用戶數據函數。 此函式可以執行任意數目的動作,從編輯報表的數據源到傳送通知,以在核准管線中建立工作專案。 在本教學課程中,我們會建立用戶數據函式,以取得新的產品描述,並將其寫入 SQL 資料庫。

  • 視覺化資料

    建立 Power BI 報表,以顯示呼叫數據函式的源數據和互動式元素。 在本教學課程中,我們會使用文字交叉分析篩選器,從使用者收集產品描述,並將其傳送給用戶數據函式。 然後,報表會重新整理以顯示更新的數據表。

建立 SQL 資料庫

此案例會使用 SQL 資料庫中的 AdventureWorksLT 數據集範例。

  1. 請遵循在 網狀架構入口網站中建立 SQL 資料庫中的步驟。

    記下您提供給 SQL 資料庫的名稱。 您稍後會在教學課程中使用此值。

  2. 建立資料庫之後,請選擇 [範例數據 ] 選項,將 AdventureWorksLT 範例數據載入空白資料庫。

建立用戶數據函式

在工作區中建立用戶數據函式。

  1. 在 Power BI 或 Fabric 中瀏覽至您選擇的工作區。

  2. 選擇 新增專案

  3. [開發資料] 群組中選取 [使用者資料函數]。

    顯示在新項目功能表上用戶數據函式方塊的螢幕快照。

  4. 提供新用戶數據函式的名稱,例如 sqlwriteback,然後選取 [ 建立]。

    記下您使用的名稱,以及工作區名稱。 您稍後會在教學課程中使用這兩個值。

  5. 選取 [新增函式]。

連接到您的 SQL 資料庫

將用戶數據函式連接到您先前建立的 SQL 資料庫。 繼續之前,請確定您具有 SQL 資料庫的訪問許可權。

  1. 針對您新的用戶數據功能,在頁面上選擇管理連線

    顯示在功能頁面上選取「管理連線」的螢幕快照。

  2. 選取 [新增數據連線]。

  3. 選取您先前建立 的 AdventureWorksLT SQL 資料庫,然後選取 [ 連線]。

  4. 建立連接時,會自動為連接建立別名。 記下稍後在本教學課程中使用的 Alias 值。

    顯示數據連線自動產生的別名位置的螢幕快照。

  5. 關閉 [ 連線] 頁面以返回您的用戶數據函式。

新增函式程序代碼

將程式代碼新增至用戶數據函式,以便將數據寫入 [SalesLT].[ProductDescription] SQL 資料庫的 AdventureWorksLT 範例中的數據表。

根據預設,用戶數據函式會針對 SQL 連線使用 pyodbc,因此建議您針對此案例使用連結庫。

若要將用戶數據函式連接到Power BI按鈕,函式必須傳回字串。

  1. 以下列範例取代使用者數據函式中的預設程式代碼:

    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" 
    
  2. 在範例中尋找下列程式代碼列:

    @udf.connection(argName="sqlDB",alias="<REPLACE_WITH_CONNECTION_ALIAS>")
    
  3. 別名 佔位元替換成前一節中的別名值。

    您可以再次開啟 [ 管理連線 ] 頁面,以檢視連線別名。

測試範例程序代碼

如果您想要到目前為止測試範例程序代碼,請使用本節中的步驟。

  1. 選取 [] 發佈 []。

  2. 發佈函式之後,將滑鼠停留在 [函式瀏覽器] 功能表中的函式 write_one_to_sql_db 上,然後選取 [執行] 圖標。

  3. 在 [ 執行] 頁面上,提供兩個必要參數的範例數據:

    • productDescription:string
    • productModelId:介於 1 到 127 之間的整數
  4. 選擇 執行

  5. 檢閱函式輸出和產生的記錄。

  6. 當您完成測試時,請關閉 [ 執行 ] 頁面。

如果您在執行範例程式代碼時收到任何錯誤,請檢查您的帳戶是否具有資料庫的訪問許可權。

授與使用者權力(選擇性)

如果其他使用者與呼叫此函式的Power BI報表互動,請授與他們 執行函式 許可權。

  1. 在函式頁面上,選取 [共享]。

  2. 選取 [ 建立及傳送連結 ] 彈出視窗的第一個方塊。

  3. [其他許可權] 列表中選取 [執行函式並檢視函式記錄],然後選取 [套用]。

    顯示新增「執行函式及檢視函式記錄」許可權的螢幕快照。

  4. 在 [ 輸入名稱或電子郵件位址 ] 方塊中,提供您想要擁有此函式許可權的使用者或群組。

  5. 選擇 傳送

建立 Power BI 報表

在本節中,您會建立 Power BI 報表,以從您在上一節中建立的 SQL 資料庫提取數據。

線上到 SQL 資料庫

將您的 SQL 資料庫作為報表的數據源進行連線。

  1. 在 Power BI Desktop 中,建立新的報表。

  2. 選取 [OneLake 目錄>SQL 資料庫]。

    顯示從 OneLake 目錄選取 SQL 資料庫的螢幕快照。

  3. OneLake 目錄 視窗中,選取您在上一節中建立的資料庫。 例如 ,AdventureWorksLT。 然後,選取 [連線]

  4. 請遵循任何提示向資料庫進行驗證。

  5. 成功連線到資料庫之後, [導覽器 ] 視窗隨即開啟。 選取下列數據表,然後選取 [載入]:

    • SalesLT.ProductDescription
    • SalesLT.ProductModel
    • SalesLT.ProductModelProductDescription

    顯示從範例數據集將三個數據表載入 Power BI 報表的螢幕快照。

  6. 出現提示時,選擇 [DirectQuery ] 作為連線模式,然後選取 [ 確定]。

    DirectQuery 模式是即時連線,可讓報表重新整理數據並反映任何數據修改。 如需詳細資訊,請參閱 Power BI 中的 DirectQuery

建置 Power BI 報表

在本節中,使用您載入 Power BI 報表的數據來建置視覺效果。

  1. 在 [ 資料] 選單中,選取下列數據行:

    • SalesLT.ProductModel > Name
    • SalesLT.ProductModelProductDescription > ProductModelID

    顯示選取要新增至報表之 [名稱] 和 [ProductModelID] 數據行的螢幕快照。

    報表視窗中會出現兩欄數據表。

    顯示 Power BI 報表的螢幕快照,其中已新增一個數據表。

  2. 在 [ 視覺效果] 功能表中,選取 [文字交叉分析篩選器] 圖示。

    顯示選取要新增至報表的「文字篩選器」視覺化效果的螢幕截圖。

    小提示

    如果您沒有看到文字交叉分析篩選器圖示,請確定已在Power BI Desktop 中啟用 文字交叉分析篩選器 預覽功能。 如需詳細資訊,請參閱 必要的預覽功能

    報表視窗中會出現文字交叉分析篩選器視覺效果。

    顯示 Power BI 報表的螢幕快照,已新增文字篩選器。

  3. 選取文字交叉分析篩選器,並使用 [格式化視覺效果>一般>標題] 選項,為文字交叉分析篩選器提供下列標題: Write a new product description

  4. 在任務欄上,選取 [ 插入 ] 功能表,並將 [空白 ] 按鈕新增至報表。 將按鈕拖曳到文字切片器的下方。

    顯示Power BI報表的螢幕快照,其中已新增按鈕。

  5. 選取按鈕,然後展開 [格式] 按鈕窗格中的 [動作] 選項。 將 動作 單選按鈕切換至 開啟

  6. 為您的按鈕提供下列值:

    參數 價值觀
    型別 選取 數據函式
    工作空間 選取工作區,其中包含您在上一節中建立的用戶數據函式。
    函式集 選取包含數據函式的函式集。 例如 ,sqlwriteback
    數據函式 選取您的數據函式。 例如, write_one_to_sql_db

    小提示

    如果您沒有看到 數據功能 選項,請確定 Power BI 桌面中已啟用 Translytical 任務流程 預覽功能。

    如果您確實看到 [數據函式 ] 選項,但看不到您的用戶數據函式,請確定您的數據函式會傳回字串。

  7. 選取數據函式之後,會出現更多參數來代表函式採用的參數。 提供下列值:

    參數 價值觀
    productDescription 從報表中選取文字篩選器,撰寫新的產品描述
    productModelId 選取 [ 條件式格式設定 ][fx] 按鈕。 新的視窗隨即開啟。

    針對 [格式樣式 ] 參數,保留預設 的 Field 值

    針對 我們應該以哪個欄位為基礎? 參數,選取 所有資料>SalesLT.ProductModel>ProductModelID
    摘要 選取 [最大值]。
  8. 選取 [確定 ] 以完成動作組態。 動作詳細資料看起來應該像下列範例:

    顯示最終動作組態詳細數據的螢幕快照。

  9. 選取按鈕,然後展開 [格式] 按鈕窗格中的 [樣式] 選項。 將 文字單選按鈕調為開啟,並為按鈕Enter添加標籤。

  10. 「樣式」選項中,將「套用設定到」選項切換為「載入」

    載入狀態是數據函式按鈕可用的唯一狀態,可用來定義數據函式執行時出現的樣式選項。

    顯示選取按鈕樣式 [載入] 狀態的螢幕快照。

  11. 展開 [ 文字] 選單,並將按鈕文字值取代為 Submitting

  12. 展開 [圖示] 功能表。

    根據預設,資料函式按鈕在載入狀態時具有 旋轉圖示 類型。

  13. 使用下列變更調整圖示樣式:

    參數 價值觀
    填充 將左邊框間距變更為 20 px
    圖示大小 將預設的 Auto 值取代為 20
  14. 在 [ 視覺效果] 窗格中,選取 [ 數據表 ] 圖示以插入新的數據表。

  15. 在 [ 資料] 窗格中,選取要新增至數據表的下列數據行:

    • SalesLT.ProductModel > Name
    • SalesLT.ProductDescription > Description
    • SalesLT.ProductDescription > ModifiedDate

    顯示 Power BI 報表的螢幕快照,其中已新增第二個數據表。

選擇性報表修改

如同任何 Power BI 報表,有許多方式可以自定義外觀並改善此報表的功能。 請考慮下列其中一些選項:

  • 將標題新增至兩個數據表。 例如,選取產品和產品描述
  • 將文字篩選器設置為在提交新產品描述後自動清除。 若要這樣做,請選取觸發用戶數據函式的按鈕。 在 [格式] 按鈕> [動作] 選單中,將 [自動清除] 切換為 [開啟]。
  • 在觸發用戶數據功能後,取消報表的自動重新整理。 在此情境中,刷新資料並看到新產品描述出現在表格中會很有幫助。 在其他案例中,您可能不需要或想要重新整理報表。 若要關閉此設定,請選取觸發用戶數據函式的按鈕。 在 [格式按鈕] >動作 選單中,將 [重新整理報表(成功結果之後)] 切換設置為 [關閉]。

執行您的 Translytical 任務流程

您可以在 Power BI Desktop 中測試 Translytical 工作流程的功能。 但是,如果您想要查看最精確的用戶體驗,請將報表發佈至 Power BI 服務,並在 Web 中進行測試。

發佈報表

您已在 Power BI Desktop 中建置報表。 在本節中,您會發佈報表,讓使用者可以在入口網站中與其互動。

  1. 在 [ 首頁 ] 工具列功能表中,選取 [ 發佈]。

  2. 選取您要發佈此報表的Power BI工作區,然後選取 [ 選取]。

  3. 報表完成發佈之後,請選取連結以在Power BI中開啟 <REPORT_NAME.pbix>

    小提示

    當您在Power BI入口網站中開啟報表時,可能會看到錯誤,指出 數據源遺漏認證,且無法存取。 若要解決此錯誤,請使用下列步驟:

    1. 開啟報表的語意模型,並流覽至 [ 檔案>設定]。
    2. 如果尚未設定,請展開 [數據源認證 ] 設定。
    3. 選取 [編輯認證]
    4. 從下拉功能表中選擇您的 驗證方法 。 例如, Basic 會採用使用者名稱和密碼,而 OAuth2 會使用您目前的帳戶啟用單一登錄。
    5. 如有需要,請提供必要資訊,然後選取 [ 登入]。

現在,您在Power BI 服務中提供的Power BI報表中有一個 Translytical 工作流程。

執行您的 Translytical 任務流程

在本節中,您會在Power BI入口網站中與報表互動,以測試您所建置的 Translytic 工作流程。

只有獲授權觸發數據函式的使用者才能使用這項功能。 任何未經授權的用戶都會收到 錯誤 回應。

  1. 在 Power BI 中開啟報表。
  2. 從列出名稱和標識碼的產品數據表中選取產品。 此選擇會將內容傳遞至您想要更新的產品的文字篩選器。 您也會看到產品描述數據表篩選,以顯示所選產品的所有目前描述。
  3. 在輸入文字框中撰寫新的產品描述。
  4. 選取箭號圖示或使用 Tab 鍵來提交輸入。 選取產品並提供描述之後,您會看到按鈕切換為已啟用狀態。
  5. 選取按鈕以執行使用者資料功能。

如果轉譯工作流程正常運作,您會收到一則訊息,顯示 您報表的動作已成功提交。 產品描述數據表會重新整理以顯示新的描述。

如果跨交易分析流程出現問題,您會收到一則訊息,上面寫著 出現問題。 選取 [檢視詳細數據 ] 以取得失敗原因的詳細資訊。 執行失敗函式的一些常見原因包括:

  • 數據驗證:輸入值不符合用戶數據函式中定義的數據驗證規則。
  • 逾時錯誤:函式或進程所花費的時間超過允許的時間才能完成。
  • 設定不當:設定報表元素時發生錯誤,通常是按鈕,可能會導致工作流程失敗或產品非預期的結果。
  • 未經授權的使用者:用戶沒有觸發數據函式的許可權。

後續步驟