You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过REST API捕获Microsoft Fabric中Notebook的输出值?

解决Microsoft Fabric Notebook运行输出的捕获问题

方案1:通过Job实例输出API直接获取

当你轮询到Notebook作业状态变为Completed后,可以调用Fabric的Job输出API来获取Notebook单元格的输出内容:

  1. 构造请求URL:
var outputUrl = "https://api.fabric.microsoft.com/v1/workspaces/{WorkspaceId}/items/{NotebookId}/jobs/instances/{JobInstanceId}/outputs";
  1. 发起GET请求(使用同一个带Bearer token的HttpClient):
var outputResponse = await client.GetAsync(outputUrl);
outputResponse.EnsureSuccessStatusCode();
var outputContent = await outputResponse.Content.ReadAsStringAsync();
  1. 解析返回的JSON,里面会包含Notebook各单元格的输出,你可以定位到最后一个SELECT语句所在单元格的output字段,提取结果。

注意:如果SELECT结果集很大,这个API返回的内容可能会被截断,此时建议用方案2。

方案2:将输出写入Lakehouse临时表再查询

如果需要获取完整的输出结果,更可靠的方式是在Notebook末尾把SELECT结果写入临时表,再通过Lakehouse API查询:

  1. 修改Notebook的最后一行,将SELECT结果存入临时表:
CREATE OR REPLACE TABLE temp_notebook_output AS
-- 你的原SELECT语句
SELECT * FROM your_table WHERE ...;
  1. 当作业完成后,调用Lakehouse的表数据查询API:
    构造URL:
var lakehouseDataUrl = "https://api.fabric.microsoft.com/v1/workspaces/{WorkspaceId}/items/{LakehouseId}/tables/temp_notebook_output/data";

发起GET请求获取数据:

var tableDataResponse = await client.GetAsync(lakehouseDataUrl);
tableDataResponse.EnsureSuccessStatusCode();
var tableContent = await tableDataResponse.Content.ReadAsStringAsync();
  1. 解析返回的JSON即可得到完整的查询结果,使用完可以删除临时表避免占用空间。

权限注意事项

确保你的Bearer token拥有以下权限:

  • WorkspaceItem.Read(访问Notebook作业输出)
  • Lakehouse.Read(查询Lakehouse表数据)

内容的提问来源于stack exchange,提问作者Joseph

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 03:24:52