通过


如何使用Microsoft Fabric笔记本

Microsoft Fabric笔记本是用于开发 Apache Spark 作业和机器学习试验的主要代码项。 这是一个基于 Web 的交互式界面,供数据科学家和数据工程师编写代码,并从丰富的可视化效果和 Markdown 文本中获益。 数据工程师编写用于数据引入、数据准备和数据转换的代码。 数据科学家还使用笔记本生成machine learning解决方案,包括创建试验和模型、模型跟踪和部署。

使用Fabric笔记本,可以:

  • 开始零设置,无需任何努力。
  • 通过直观的低代码体验轻松浏览和处理数据。
  • 利用内置企业安全功能确保数据安全。
  • 使用强大的 Spark 功能,分析各种格式的数据,包括原始格式(CSV、txt、JSON 等)和已处理的文件格式(parquet、Delta Lake 等)。
  • 利用增强的创作功能和内置的数据可视化功能提高工作效率。
  • 利用Copilot在笔记本中生成、重构和验证有上下文意识的代码。
  • 使用Copilot快速诊断和修复失败的单元格或 Spark 作业,包括基于审批的代码更改。

本文介绍如何在数据科学和数据工程体验中使用笔记本。

正在运行的笔记本的安全环境

可以通过三种方式触发笔记本执行,每种方式都有不同的安全上下文。

  • 交互式运行:通过 UI 或 REST API 手动触发执行。 笔记本在安全上下文(当前用户)下运行。
  • 作为管道活动运行:从Fabric Data Factory管道中触发执行。 请参阅 Notebook 活动 以获取详细信息。 笔记本在 管道上次修改用户的标识下运行,而不是管道所有者或笔记本所有者。 这意味着最后编辑管道的人来确定数据访问、API 调用和权限的安全上下文。
  • 计划程序:执行由预定运行触发。 笔记本在创建或上次更新计划的用户的标识下运行。

这些运行选项为不同的场景提供了灵活性,但您必须了解哪个身份在运行您的笔记本。 安全上下文影响数据access权限、API 调用授权和资源可用性。 某些 API(如 T-SQL 终结点)不支持服务主体,并且需要用户主体。

首次创建笔记本时,会显示警告消息,提醒你运行代码的风险,而无需查看它。

显示正在运行笔记本的警告的屏幕截图。

遵循以下最佳做法以避免安全问题:

  • 手动运行笔记本之前:检查上次修改笔记本的人员,并使用 版本历史记录 面板在执行未编写的代码之前查看实际内容更改。
  • 将笔记本添加到管道之前:验证上次修改管道的人员,因为该笔记本在该用户的标识下运行。 打开管道中的笔记本以查看其最新内容。 如果身份没有所需的权限(或者在某些 API 的需求下需要用户主体而非服务主体),请让相关用户编辑管道,以更新最后修改的身份。
  • 在创建或更新计划之前:笔记本在创建或更新计划的人员的标识下运行。 确保用户拥有执行笔记本中所有操作的必要权限。
  • 使用工作区阶段:将工作区分为开发、测试和生产阶段。 将生产工作区的访问限制为仅受信任的用户。

创建笔记本

可以新建笔记本或导入现有笔记本。

创建新的笔记本

与其他标准Fabric项创建过程一样,可以轻松地从 Fabric Data Engineering 主页、工作区 New 选项或 Create Hub 创建新笔记本。

有关特定工作流中的分步笔记本创建指南,请参阅:

  • 在湖仓中探索数据,以便在 Fabric 门户的湖仓环境中创建笔记本。
  • 在 Microsoft Fabric 中使用 Visual Studio Code 编写笔记本,以便从 VS Code 创建笔记本。
  • 用于通过 REST API 创建笔记本的公共 API。

导入现有笔记本

可以使用工作区工具栏中的条目从本地计算机导入一个或多个现有笔记本。 Fabric笔记本识别标准 Jupyter Notebook .ipynb 文件,以及源文件,如 .py.scala.sql 文件,并相应地创建新笔记本项。

显示“新建”菜单上查找笔记本选项的位置的屏幕截图。

导出笔记本

可以将笔记本导出为其他标准格式。 可以将Fabric笔记本导出到:

显示要导出笔记本的位置的屏幕截图。

保存笔记本

在Fabric中,在打开和编辑笔记本后,笔记本默认会自动保存;无需担心丢失代码更改。 还可以使用“保存副本”在当前工作区中克隆另一个副本,或克隆到另一个工作区。

显示保存副本的位置的屏幕截图。

如果希望手动保存笔记本,还可以切换到“手动”保存选项以获得笔记本项的本地分支,并使用“保存”或 CTRL+S 来保存更改。

显示切换手动保存位置的屏幕截图。

还可以通过选择“编辑”->“保存选项”->“手动”切换到手动保存模式。 若要打开笔记本的本地分支并手动保存它,请选择“保存”或使用 Ctrl+S 快捷键。

连接湖仓和笔记本

Fabric 笔记本现在支持与数据湖仓库的紧密交互;您可以轻松地通过 Lakehouse 资源管理器添加新的或现有的数据湖仓库。

可以在湖屋资源管理器中导航至不同的湖屋,并通过固定其中一个,将其设为默认湖屋。 然后,默认配置将被装载到运行时工作目录中,你可以使用本地路径来读取或写入默认的数据湖仓库。

显示固定默认 Lakehouse 的位置的屏幕截图。

注意

在固定新的湖屋或重命名默认湖屋后,必须重启会话。

添加或移除湖屋

选择湖屋名称旁边的“X”图标会将其从笔记本选项卡中移除,但湖屋项仍存在于工作区中。

选择“添加湖屋”,通过添加现有湖屋或创建新湖屋来向笔记本添加更多湖屋。

浏览湖屋文件

视图的“”和“文件”部分下的子文件夹和文件显示在湖屋列表和笔记本内容之间的内容区域中。 选择“”和“文件”部分中的不同文件夹以刷新内容区域。

文件夹和文件操作

如果选择文件(.csv、.parquet、.txt、.jpg、.png等),只需右键单击鼠标即可使用 Spark 或 Pandas API 加载数据。 将生成一个新的代码单元格并将其插入到焦点单元格的下方。

可以通过选择文件或文件夹轻松复制采用不同格式的路径,并在代码中使用相应的路径。

显示 Lakehouse 中文件的上下文菜单的屏幕截图。

笔记本资源

笔记本资源资源管理器提供类似于 Unix 的文件系统,可帮助你管理文件夹和文件。 它提供了一个可写的文件系统空间,你可以在其中存储小型文件,例如代码模块、语义模型和图像。 可以使用笔记本中的代码轻松access它们,就像使用本地文件系统一样。

笔记本资源的动画 GIF。

注意

  • 内置文件夹和环境文件夹的最大资源存储空间为 500 MB,且单个文件大小最大可为 100 MB。 这两个中,总共允许多达 100 个文件和文件夹实例
  • 使用 notebookutils.notebook.run() 时,请使用 notebookutils.nbResPath 命令来access目标笔记本资源。 相对路径 builtin/ 将始终指向根笔记本的内置文件夹

注意

资源文件夹中的文件(内置和环境)和通过内联命令(如 %pip installinstall.packages())安装的库的范围限定为当前笔记本会话。 它们不受快速模式或完全模式的环境发布过程的影响。

内置资源文件夹

内置资源文件夹是每个笔记本唯一的系统定义文件夹。 建议使用内置的资源文件夹来存储当前笔记本中使用的任何数据。 下面是笔记本资源的关键功能。

  • 可以通过 UI 使用常见操作,例如创建/删除、上传/下载、拖/放、重命名、复制和搜索。
  • 可以使用相对路径(例如 builtin/YourData.txt )进行快速浏览。 方法 notebookutils.nbResPath 可帮助你撰写完整路径。
  • 可以通过“写入湖屋”选项轻松将已验证的数据移动到湖屋。 Fabric为常见文件类型嵌入丰富的代码片段,以帮助你快速入门。
  • 这些资源也可通过参考笔记本运行案例notebookutils.notebook.run()中使用。

环境资源文件夹

环境资源文件夹是一个共享存储库,旨在简化跨多个笔记本的协作。

  • 在特定环境中可以找到资源选项卡,并且可以在此完整管理资源文件的操作。 将笔记本附加到当前环境后,可以在多个笔记本之间共享这些文件。

    显示管理环境中资源的位置的屏幕截图。

  • 在“笔记本”页中,可以轻松找到从附加环境继承的资源下的第二个根文件夹。

    显示打开环境资源文件夹的位置的屏幕截图。

  • 还可以对与内置资源文件夹相同的文件/文件夹进行操作。

  • 环境资源路径会自动装载到笔记本群集。 可以使用相对路径 /env 来访问环境资源。

在 Fabric 环境中,有两种库发布模式会影响库如何被传送到您的笔记本会话:

  • 快速模式 会在大约 5 秒内发布,并在笔记本会话启动时安装库。 快速模式可以替代通过完整模式发布的库版本,但仅适用于当前会话。
  • 完整模式 可创建稳定且可重现的库快照。 发布通常需要 3 到 6 分钟,会话启动为依赖项部署添加 1 到 3 分钟。 将完整模式与 自定义实时池 配合使用可将会话开始时间恢复为大约 5 秒,同时维护稳定的快照。

有关每个模式的详细信息,请参阅Fabric环境中的 Manage 库

在笔记本中使用环境库

根据工作流选择库发布模式:

  • 用于迭代开发的快速模式:在笔记本中主动试验并需要快速库迭代时使用快速模式。 库在会话开始时安装,所需发布时间最短。
  • 可重现性的完整模式:当需要跨协作者、计划运行或管道作业的一致库版本时,请使用完整模式。 快照可确保每个会话都以相同的依赖项开头。
  • 使用自定义实时池实现快速稳定会话的完整模式:快速会话启动和可重现性都很重要时,请使用 自定义实时池配置完整模式。 此组合可实现大约 5 秒的会话启动,同时保留稳定的库快照。

注意

具有相对路径的读取/写入在 高并发会话中不起作用。

文件编辑器

通过文件编辑器可以直接在笔记本的资源文件夹和环境资源文件夹中查看和编辑文件。 支持的文件类型包括 CSV、TXT、HTML、YML、PY、SQL 等。 使用文件编辑器,可以轻松access和修改笔记本中的文件,它支持关键字突出显示,并在打开和编辑代码文件(如 .py.sql)时提供必要的语言服务。

  • 可以通过“查看和编辑”在文件菜单中access此功能。 双击文件是一种更快的方法。

    显示查看和编辑文件的位置的屏幕截图。

  • 需要手动保存文件编辑器上的内容更改,方法是单击 “保存”按钮或键盘快捷方式:Ctrl+S,文件编辑器不支持自动保存。

  • 笔记本模式 也会影响文件编辑器。 如果在笔记本模式下没有编辑权限,则只能查看文件,但不能编辑这些文件。

注意

下面是文件编辑器的一些限制。

  • 文件大小限制为 1 MB
  • 以下文件类型不支持查看和编辑:.xlsx 和 .parquet

在笔记本中协作

Fabric笔记本是一个协作项目,支持多个用户编辑同一笔记本。

打开笔记本时,默认进入协同编辑模式,并且每次编辑都会自动保存。 如果你的同事们在同一时间打开相同的笔记本,你将看到他们的个人资料、运行结果、光标指示、选择指示,以及编辑痕迹。 使用协作功能可以轻松完成结对编程、远程调试和指导方案。

显示另一个用户编辑的代码单元格的屏幕截图。

在笔记本中使用Copilot

Copilot 能立即感知到工作区、连接的 Lakehouse 架构、表和文件、笔记本结构以及当前运行时状态。 Copilot可以在不需要启动会话的情况下立即开始帮助你。 Copilot支持跨整个工作流的多步骤笔记本级代码生成、重构、汇总和验证,因此无需丢失上下文即可跨单元格工作。

来自Copilot的性能见解

Copilot基于数据大小、联接模式和运行时行为呈现性能指南。 例如,它可以建议有效的联接策略,帮助你避免成本高昂的洗牌操作,建议重构为可重用的函数,并着重指出在执行过程中观察到的潜在数据质量问题。 这些见解将作为Copilot对话的一部分显示,并与 /optimize 命令保持一致。

使用Copilot进行故障排除

当单元格或 Spark 作业失败时,失败的单元格下方会出现一个使用 Copilot 修复选项。 它提供错误摘要、根本原因分析和建议的修复。 Copilot可以使用审批差异自动应用代码更改,以便在提交之前进行评审。 还可以在Copilot聊天中使用 /fix 命令运行特定单元格或整个笔记本的目标诊断。 有关详细信息,请参阅 使用 Copilot 诊断笔记本故障

共享笔记本

共享笔记本是与团队成员协作的便捷方式。 默认情况下,授权的工作区角色可以查看或编辑/运行笔记本。 可以使用授予的指定权限共享笔记本。

  1. 在笔记本工具栏上选择“共享”。

    屏幕截图显示选择“共享”的位置。

  2. 选择可以查看此笔记本的人员的相应类别。 可为接收者选择“共享”、“编辑”或“运行”权限。

    显示选择权限的位置的屏幕截图。

  3. 选择“应用”后,可以直接发送笔记本或将链接复制给其他人。 然后,接收者可以使用其权限级别授予的相应视图打开笔记本。

    显示创建和发送链接的位置的屏幕截图。

  4. 若要进一步管理笔记本权限,请选择“工作区项列表”>“更多选项”,然后选择“管理权限”。 从该屏幕中,可以更新现有笔记本的访问权限和权限。

    显示在工作区中管理权限的位置的屏幕截图。

注释代码单元格

评论是协作场景中的另一个有用功能。 目前,Fabric支持添加单元格级注释。

  1. 选择笔记本工具栏或单元格注释指示器上的“注释”按钮,打开“注释”窗格。

    显示选择“批注”的位置的屏幕截图。

  2. 在代码单元格中选择代码,选择“注释”窗格中的“新建”,添加注释,然后选择“发布注释”按钮进行保存。

    显示在何处选择“新建”的屏幕截图。

  3. 如果需要,可以通过选择注释旁边的“更多”选项找到“编辑注释”、“解析线程”和“删除线程”选项。

在注释中标记其他人

“标记”是指在注释线程中提及和通知用户,从而有效地增强在细节上的协作。

  1. 在单元格中选择一段代码并新建一个注释线程。

  2. 输入用户名,然后从建议列表中选择正确的用户名(如果要在讨论某个部分时提及某人)。

  3. 共享见解并发布它们。

  4. 将会触发一封电子邮件通知,用户单击 打开评论 链接,以便快速定位这个单元格。

  5. 此外,在标记没有access的用户时授权和配置权限,确保代码资产得到很好的管理。

在评论中标记他人的动画 GIF。

注意

对于批注项目,如果一小时内更新批注,标记的用户将不再收到电子邮件通知。 但它向新标记的用户发送电子邮件通知。

版本历史记录

重要

此功能目前为预览版

使用版本历史记录,可以轻松对实时笔记本更改进行版本控制。 它支持使用可靠的内置版本控制功能进行历史记录跟踪和笔记本管理,这对于在同一笔记本上与多个参与者协作尤其有用。

  1. 通过笔记本全局工具栏访问版本历史记录

    截图显示历史记录访问。

  2. Notebook 支持创建检查点的两种方法。

    • 手动检查点:可以手动创建新版本来记录开发里程碑,从而灵活地管理笔记本版本

      显示如何创建新版本的屏幕截图。

    • 系统检查点:这些检查点根据笔记本系统的编辑时间间隔每隔 5 分钟自动创建一次,确保工作一致保存和版本控制。 您可以在系统检查点时间线列表中找到所有贡献者的修改记录。 显示展开检查点列表的屏幕截图。

  3. 笔记本的多源检查点

    Fabric笔记本与 Git、部署管道和Visual Studio Code无缝集成。 每个保存的版本会自动记录到笔记本的版本历史记录中。 版本可能源自直接在笔记本中的编辑、Git 同步、部署流水线活动或通过 VS Code 的发布。 每个版本的源在版本历史记录中明确标记,以提供完整的可跟踪性。

    显示笔记本版本历史记录的多源检查点的屏幕截图。

  4. 可以单击检查点以打开 差异视图,它突出显示所选检查点与当前实时版本之间的内容差异,包括单元格内容、单元格输出和元数据的差异。 可以在 “更多选项” 菜单中单独管理此检查点的版本。

    显示视图差异的 屏幕截图。

  5. 可以从检查点下拉菜单中管理版本,如果要保留以前的版本,请单击从检查点 还原 并覆盖当前笔记本,或使用 另存为副本 将其克隆到新笔记本。

    显示具有检查点的更多选项的屏幕截图。

注意

  • 已知限制:当多个协作者正在编辑时,如果其中一个协作者单击 “还原 ”按钮,然后导航 回笔记本,则不会立即从检查点恢复笔记本。 消息栏会提示你查看更改。 需要单击“ 查看更改 ”按钮,然后选择“保存 的版本 ”以完成还原。 显示还原后视图更改的屏幕截图。
  • 系统检查点将在 1 年后过期

笔记本模式切换器

Fabric笔记本支持以下四种模式:Develop仅运行EditView。 每个模式都与一组权限保持一致。

共享笔记本时,可以向用户分配权限。 根据这些权限,用户可以在可用的模式之间访问和切换。

显示切换模式位置的屏幕截图。

  • 开发模式:需要读取、执行和写入权限。
  • 仅运行模式:需要读取和执行权限。
  • 编辑模式:需要读取和写入权限(无法运行)。
  • 视图模式:需要读取权限。

权限和访问

可以在Microsoft Fabric中的工作区或笔记本级别设置权限。 他们确定用户可以访问哪些模式:

  • 权限限制可用模式集。
  • 他们不会自动为用户选择模式。
  • 模式不能授予超出允许权限的功能。