Fabric 用户数据函数使用 Fabric 门户中的“管理连接”功能提供本机数据源连接。 此功能允许连接到 Fabric 数据源,而无需创建连接字符串或管理访问凭据。
在这篇文章中,你将学会如何:
- 为用户数据函数项创建新连接。
- 在函数代码中使用新连接。
- 修改或删除数据连接。
Fabric 用户数据函数中支持的数据源连接
以下数据源当前支持用于 Fabric 用户数据函数:
- 用于读写操作的 Fabric SQL 数据库
- 网络结构仓库用于读写操作
- Fabric 湖仓用于 湖仓文件的读写操作,以及 SQL 终结点的只读操作。
- 用于只读作的构造镜像数据库
为用户数据函数项创建新连接
添加的任何数据连接都与用户数据函数项相关联,并且可以在任何函数的代码中引用。 若要遵循本指南,需要现有的 Fabric 用户数据函数项和现有的 Fabric 数据源。
1.从 Functions 门户访问“管理连接”功能
在 Functions 门户编辑器的功能区中找到并选择“管理连接”。
打开的窗格包含你创建的任何数据连接。 选择“添加数据连接”以创建新连接。
2.从 OneLake 目录选择数据连接
选择“添加数据连接”时,OneLake 目录将打开,其中包含用户帐户有权访问的所有数据源的列表。 该列表经过筛选,仅包含受支持的数据源,其中一些数据源可能位于其他工作区中。
选择你的数据源,然后选择“连接”。
注释
如果找不到要查找的数据源,请确保你有权连接到数据源。 或者,请确保使用受支持的数据源,如本文开头所列。
创建后,所选数据源的新连接将显示在“连接”选项卡的侧窗格中。看到连接时,请记下为其生成的“别名字段”。 需要使用此别名从用户数据函数项中的任何函数引用连接。
3.在函数代码中使用连接别名
回到门户编辑器后,需要向代码添加在 Manage Connections
选项卡中创建的连接的别名。 在这种情况下,我们将使用一个名为“Read data from a table in SQL Database(从 SQL 数据库中的表读取数据)”的代码示例。 可以通过单击“编辑”选项卡,然后单击“插入示例”按钮并导航到“SQL 数据库”来找到此示例。
以下是插入的示例代码:
@udf.connection(argName="sqlDB",alias="<alias for sql database>")
@udf.function()
def read_from_sql_db(sqlDB: fn.FabricSqlConnection)-> list:
# Replace with the query you want to run
query = "SELECT * FROM (VALUES ('John Smith', 31), ('Kayla Jones', 33)) AS Employee(EmpName, DepID);"
# Establish a connection to the SQL database
connection = sqlDB.connect()
cursor = connection.cursor()
query.capitalize()
# Execute the query
cursor.execute(query)
# Fetch all results
results = []
for row in cursor.fetchall():
results.append(row)
# Close the connection
cursor.close()
connection.close()
return results
注释
虽然此示例连接到 SQL 数据库,但它不需要数据库中有架构或数据才能运行。
若要使用你创建的数据连接,请修改此示例中的以下行:@udf.connection(argName="sqlDB",alias="<alias for sql database>")
,方法是将 alias
的值替换为从 Manage Connections
菜单获取的值。 以下代码显示具有值 ContosoSalesDat
的此示例:
@udf.connection(argName="sqlDB",alias="ContosoSalesDat")
@udf.function()
def read_from_sql_db(sqlDB: fn.FabricSqlConnection)-> list:
[...]
修改代码后,使用工具栏中的“发布”按钮发布函数。 此操作可能需要几分钟的时间。
发布完成后,可以通过将鼠标悬停在函数资源管理器列表中函数的名称上,然后单击侧面板中的“运行”按钮来运行函数。 底部面板“输出”将显示运行函数的结果。
这样就可以从 Fabric 用户数据函数连接到数据源。