可以直接从 Fabric 门户将 Fabric 用户数据函数连接到受支持的 Fabric 数据源。 Fabric 会为你处理身份验证,因此用户数据函数代码只需要引用连接别名,而不是存储凭据或连接详细信息。
在这篇文章中,你将学会如何:
- 为用户数据函数项创建新连接。
- 在函数代码中使用新连接。
- 修改或删除数据连接。
Fabric 用户数据函数中支持的数据源
以下数据源当前支持用于 Fabric 用户数据函数:
- 用于读写操作的 Fabric SQL 数据库
- 网络结构仓库用于读写操作
- Fabric 湖仓用于 湖仓文件的读写操作,以及 SQL 终结点的只读操作。
- 用于只读作的构造镜像数据库
注释
还可以连接到Fabric 变量库以将配置设置作为变量在函数中访问。 若要了解如何在函数代码中使用变量库变量,请参阅 从 Fabric 变量库获取变量。
先决条件
在连接到数据源之前,需要:
- 工作区中的 Fabric 用户数据函数项
- 用户数据函数项的写入权限以管理连接
- 至少有一个 受支持的数据源(SQL 数据库、仓库、湖仓或镜像数据库)在一个可访问的工作区中。
- 要连接到的数据源的读取权限(或更高权限)
在 Fabric 门户中添加连接
若要从函数访问数据,需要创建与数据源的连接。 此连接会自动处理身份验证和授权,因此无需在代码中管理连接字符串或凭据。 创建连接后,它会生成一个别名,可以从用户数据函数项中的任何函数引用该别名。
添加连接:
在 Fabric 门户中,查找并打开用户数据函数项。
在用户数据函数编辑器的功能区中选择 “管理连接 ”。
在打开的窗格中,选择 “添加数据连接”。
OneLake 目录打开时,浏览数据源列表。
注释
该列表经过筛选,仅包含用户帐户有权访问的受支持数据源。 数据源可能位于其他工作区中。 如果找不到要查找的数据源,请确保你有权连接到数据源。
选择你的数据源,然后选择“连接”。
创建后,新连接将显示在“ 连接 ”选项卡上的侧窗格中。记下为其生成的 别名 。 要使用此别名,从您用户数据函数项中的函数处引用连接。
在函数代码中使用连接
创建连接后,可以使用连接的别名在函数代码中引用它。 别名是根据连接到的数据源的名称自动生成的。 在函数中,将此别名添加到 @udf.connection 修饰器,当函数运行时,连接会处理身份验证。
虽然可以将连接代码添加到你从头编写的任何函数,但使用样例提供了一个包含已编写连接代码的起点。 只需修改别名以匹配连接。
若要在代码中使用连接,请使用:
如果尚未在编辑器中,请打开用户数据函数项并选择“ 开发模式”,然后选择“ 编辑 ”选项卡。
在功能区上,选择 “插入示例”。
从下拉列表中选择 “SQL 数据库>从 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注释
此示例查询使用
VALUES子句生成内联测试数据,因此即使数据库尚没有任何表,也可以测试连接。 准备好查询自己的数据时,请将查询替换为引用实际表的查询。将
@udf.connection修饰器中的<alias for sql database>替换为您在上一节创建的连接中的别名。例如,如果连接别名为
ContosoSalesDat,修饰器将如下所示:@udf.connection(argName="sqlDB",alias="ContosoSalesDat") @udf.function() def read_from_sql_db(sqlDB: fn.FabricSqlConnection)-> list: [...]测试函数 以验证连接是否正常工作。
使用连接测试函数后,可以发布并运行它。 有关详细信息,请参阅 测试用户数据函数。
修改或删除连接
可以从 “管理连接 ”窗格修改或删除现有连接。 但是,在进行更改之前,请注意对函数的影响。
修改连接别名
修改现有连接的别名:
在 Fabric 门户中,打开用户数据函数项。
选择功能区中的 “管理连接 ”。
在 “管理连接 ”窗格中,找到要修改的连接,然后选择 “编辑连接 ”图标(铅笔)。
输入新的别名。
选择更新以保存更改。
重要
更改连接的别名时,使用旧别名的任何函数在运行时都失败。 必须更新引用旧别名的所有函数代码才能使用新的别名。 若要连接到其他数据源,请创建新的连接,而不是修改现有连接。
删除连接
删除连接:
在 Fabric 门户中,打开用户数据函数项。
选择功能区中的 “管理连接 ”。
在 “管理连接 ”窗格中,找到要删除的连接,然后选择 “删除连接 ”图标(垃圾桶)。
确认删除。
警告
如果删除函数代码中引用的连接,这些函数在运行时会失败,并出现连接错误。 在删除连接之前,请确保没有函数使用它,或更新函数代码以删除对已删除的连接别名的引用。