体验Translytical TasksFlow,PowerBI数据回写保姆级教程

体验Translytical TasksFlow,PowerBI数据回写保姆级教程

解决方案goocz2025-05-23 15:52:494A+A-

Power BI 新推出的Translytical Tasks Flow功能,使用户能够直接从 Power BI 报告中自动化操作,从而简化操作流程,用户无需离开报告界面即可立即触发任务流。

Translytical task flow 由 Fabric 用户数据函数驱动,可实现多种自动化任务。用户现在可以根据报告中提供的筛选上下文和输入,以编程方式修改实现数据回写、动态通知等工作。

本文带你来体验一下Translytical任务流,详细介绍如何在 Power BI 中使用该功能实现数据回写并自动更新(基于官方示例数据集为产品添加新的描述)。

准备工作

在开始之前,你需要:

  • 有一个PowerBI国际版账户,免费的也可以,并开启Fabric 试用。
  • 安装最新版的Power BI Desktop,并启用“Translytical Tasks Flow"和"文本切片器"预览功能。


下面进入操作步骤:

创建 SQL 数据库

在Fabric中创建一个新的 SQL 数据库,并加载 AdventureWorksLT 样本数据集。

登录PowerBI服务(app.powerbi.com),进入一个工作区,点击左上角的"新建项"。


在弹出的窗口中,下拉在存储数据中选择SQL database。


输入一个数据库名称。

点击创建,稍等片刻数据库就建好了。

这个步骤可能会提醒你升级到免费的Fabric试用版,点击升级即可。


建好数据库后,点击"示例数据",将官方的 AdventureWorksLT 示例数据加载到新建的空数据库中。

加载完成后,就能看到数据库中的每个表。


创建用户数据函数

用户数据函数是实现自动任务流的核心组件,它允许 Power BI 调用 Python 代码执行任务。本步骤将创建一个数据回写 的函数,用于将用户输入的产品描述写入 AdventureWorksLT 数据库的表中。

返回到同一个工作区中,再次点击左上角的“新建项”,下拉在开发数据中点击“用户数据函数”。


输入一个函数名:


然后就能看到函数编辑窗口。


连接到 SQL 数据库

点击代码编辑框上方的“manageConnection”按钮,选择之前创建的 SQL 数据库,然后选择 “连接”,就能看到如下的界面。

创建连接时,会自动为连接创建别名。 记下 别名 值(上图中的第一项demosql),以便在后续步骤中使用。


添加函数代码

在用户数据函数中添加代码,以便将数据写入 SQL 数据库的表中。

复制下面的代码:

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"


粘贴替换代码编辑框中原有示例代码。

并将代码中的"<
REPLACE_WITH_CONNECTION_ALIAS>
"替换为你创建的数据库别名,如上图。


运行测试函数

点击“publish”发布函数。


发布函数后,将鼠标悬停在函数资源管理器菜单上的write_one_to_sql_db函数上,然后选择“运行”图标。


在运行界面上,输入两个必需的参数,第一个框可以是任意文本(不超过200个字符),第二个框中填写1至127的任意整数。

点击运行按钮测试,没有报错,说明上面创建函数成功,关闭“运行”页,至此PowerBI服务端操作完成。



PowerBI desktop中连接数据库

以 DirectQuery 模式连接到 SQL 数据库。

打开最新版的PowerBI desktop,登录与前面相同的账户,然后选择 OneLake 目录>SQL database


OneLake 目录 窗口中,选择前面创建的SQL数据库。

成功连接到数据库后,将打开 导航器 窗口。 选择下表,然后选择“ 加载”:

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


连接模式选择"DirectQuery"


这样,就把云端创建的SQL数据库中的这几张表加载到PowerBI模型中了:


PowerBI desktop中创建报表

创建一个交互式报告,包含产品选择表格、文本输入框和触发回写的按钮。

首先在PowerBI中利用加载的表,制作两个表格:


然后在画布上插入一个文本切片器,并设置文本切片器的标题:


在画布上再插入一个空白的按钮:


按钮的操作属性打开,类型选择“数据函数”。

注:如果你没有看到数据函数,可能你的版本不是最新版,或者预览功能中没有勾选“Translytical Tasks Flow” 。

然后按下图选择该按钮操作的各个属性,都是前面已经创建好的工作区名称、函数名称以及文本切片器名称。


其中最后一项fx条件格式的设置如下图,选择SalesLT.ProductModel表中的ProductModelID字段,摘要为最大值。


然后对按钮做一下美化,主要是设置"默认"状态和"正在加载"状态的文本:

至此,报表创建完成,整个制作流程结束。

下面可以在测试一下回写效果。

还可以将这个报告继续发布到PowerBI服务中,发布后工作区打开这个报告,如果无法显示内容,提示缺少凭据:


可以请找到这个报告的语义模型的数据源设置,点击编辑凭据:

然后选择适当的身份验证方法(Basic 采用用户名和密码, OAuth2 支持使用当前帐户进行单一登录,选OAuth2更简单)。

这样工作区的报告就可以正常显示了,数据回写的效果与上面看到的一样。

通过本教程,就实现了Power BI 报告利用 Translytical 任务流实现数据回写。你可以选择产品、输入一段文字描述并将其保存到 SQL 数据库,实时查看更新结果,这种方法非常适合需要交互式数据注释的场景。

这种方式要比之前分享的利用Power Apps实现数据回写更简单更丝滑。

Translytical task flows 弥合了分析洞察与运营执行之间的鸿沟,将 Power BI 从一个纯粹的报告单向查看工具转变为一个双向的分析和互动平台,以后我们也会分享它的更多用法。


PowerBI星球的最新2024版内容合辑,值得你收藏学习:

「PowerBI星球」内容合集「链接」

.

点击这里复制本文地址 以上内容由goocz整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

果子教程网 © All Rights Reserved.  蜀ICP备2024111239号-5