使用 Genie Code 进行管道开发

代理模式下的 Genie Code 是 Lakeflow 管道编辑器中面向开发人员的 AI 数据工程合作伙伴。 它仅凭一个提示即可探索数据、生成并运行流水线代码,并修复错误。

注释

本页介绍如何使用 Genie Code 开发和迁移 Lakeflow (SDP) 管道上的 Spark 声明性管道。 若要将旧 SQL 从其他方言(如 T-SQL、Snowflake 或 Oracle)转换为 ANSI SQL,请改用代理代码转换器。 请参阅 使用代理代码转换器转换 SQL

什么是用于管道开发的 Genie Code?

代理模式下的 Genie Code 是一个自治合作伙伴,可以在 Lakeflow 管道编辑器中自动执行整个多步骤数据工程工作流。

使用数据工程代理。

与 Genie Code 聊天模式相比,代理模式具有扩展的功能:规划解决方案、检索相关资产、运行代码、使用管道输出来改进结果、自动修复错误等。

代理模式下的 Genie Code 可以从头开始规划和生成整个管道,或加速处理现有管道。 代理与你合作,批准其计划,并在继续之前确认其后续步骤。 通过审批,Genie Code 可以使用工具执行搜索表、编辑 SQL 或Python源文件、运行管道更新和读取管道数据集等任务。

Genie Code 的访问权限和操作由用户的权限控制。 它只能访问你有权访问的数据,并执行你有权执行的操作。

注释

在 Genie Code 中打开代理模式时,Genie Code 会根据 Databricks 中当前使用的功能调整其功能。 例如,在 Lakeflow 管道编辑器中,Genie Code 侧重于管道编辑和数据工程任务。 在笔记本和 SQL 编辑器中,Genie Code 支持数据浏览和分析。 有关详细信息,请参阅 使用 Genie Code 进行数据科学

要求

若要使用 Genie Code 进行数据工程,工作区需要以下各项:

使用 Genie Code 进行管道开发

若要使用 Genie Code 的代理功能进行管道开发,

  1. 在 Lakeflow 管道编辑器中,单击工作区右上角的 Sparkle Genie Code 图标Genie Code,打开 Genie Code 侧边面板。

  2. 在右下角,选择 “代理”。 这会切换 Genie Code 的代理模式,允许你使用 Genie Code 的代理数据工程功能。

  3. 为 Genie Code 输入提示。 例如,您可以向其询问有关管道的问题,如“描述此管道”。 您还可以要求其添加新的数据集,例如,“在新的文件中创建 silver_sales_data,该文件读取 bronze_sales_data 中的数据,对数据进行清洗,并添加有用的质量预期。”

    注释

    Genie Code 尊重用户的 Unity 目录权限,因此它只能访问你有权访问的数据和管道源。

  4. 当 Genie Code 生成响应时,它通常会暂停以获取输入:

    • 对于更复杂的任务,Genie Code 可能会创建分步计划并提出澄清的问题。 回答其澄清的问题,以帮助它磨练其计划。

    • 当 Genie Code 需要运行代码或更新管道时,它会在继续之前请求批准。 允许拒绝 其请求。 您还可以选择“在此线程中允许”(指 Genie Code 对话线程)或“始终允许”

      重要

      代理模式下的 Genie Code 可以在管道中生成和执行代码。 虽然它有防护措施来防止危险行动,但仍有风险。 应仅将其与信任的数据一起使用,并且应在运行代码之前查看代码。

    • 随着 Genie Code 继续其工作,系统可能会提示你选择“ 继续 ”或“ 拒绝”。 查看其现有工作,然后选择“ 继续 ”以使其继续执行后续步骤,或 拒绝 告知其尝试其他内容。

    • 若要在正常运行时停止 Genie Code,请单击红色“停止”图标。

Genie Code 可以创建新文件、生成文本、查询和代码、运行文件或管道,以及访问输出数据集来解释结果。

注释

为了让 Genie Code 继续工作并执行下一步操作,您需要停留在 Genie Code 当前正在使用的选项卡上。

小窍门

可以添加 Genie Code 的说明,以便在大多数响应中使用。 例如,如果你有要使用的代码约定或首选库,则可以将这些准则添加到 Genie Code 的说明。 还可以创建 技能,以便为特定领域的任务扩展 Genie Code 的专用功能。 有关更多详细信息和其他提示,请参阅 改进 Genie Code 响应的提示

代理模式功能

在代理模式下,Genie Code 可以帮助完成大多数管道开发任务。 关键功能包括:

  • 数据发现:Genie Code 可以搜索工作区中的表,以帮助查找任务所需的数据。
  • 管道代码编辑:Genie Code 一次可以创建和编辑多个文件。 它会让你了解它正在更改的文件,并显示每个文件中的代码差异,以便你可以在末尾单独或全部查看更改。
  • 管道执行:Genie Code 可以运行单个文件、对管道进行干跑/运行,或执行完整刷新。 当 Genie Code 想要继续时,它会在执行此操作之前请求确认。
  • 了解和改进管道行为:Genie Code 可以检查数据集和管道输出,以帮助你了解管道正在执行端到端操作的原因。 例如,它可以汇总转换、跟踪数据流向下游表的过程,并突出显示行计数或架构中的意料之外的变化。 当它显示潜在的数据质量问题时,Genie Code 可以帮助你推理其原因,并建议如何在管道中解决它们。

这些功能支持常见用例,例如:

  • 创作新管道:Genie Code 可帮助完成创建新的奖牌体系结构管道的所有步骤,从引入数据到标准化和清理数据、转换和分析数据。
  • 说明管道:Genie Code 可以分析和解释现有管道,以帮助快速提升。
  • 修复问题:出现错误时,Genie Code 可以帮助诊断和解决问题,在解决问题之前循环访问多个文件。
  • 修复增量刷新:当管道中的实体化视图使用完整重新计算策略刷新时,Genie Code可以根据管道的 增量化洞察诊断原因,建议并应用更适合增量刷新的查询改进,并标记硬阻塞。

从其他 ETL 框架迁移到 Lakeflow 管道

重要

此功能在 Beta 版中。

Genie Code 可以将现有数据转换项目迁移到 Lakeflow 管道。 只需将它指向你上传的项目,它就会端到端地规划并执行整个迁移过程。 此迁移功能是 Lakebridge 的一部分,也可通过 LakebridgeSwitch 转译器获得。

注释

迁移目前仅支持 dbt 和 Informatica 项目。 计划支持更多来源。

迁移项目

  1. 将项目上传到 Databricks。 使用下列方法之一:

    • 目录:打开一个卷,再上传到此卷
    • 工作区:打开目录,然后单击 “Kebab”菜单图标。>导入
  2. 创建空白 Lakeflow 管道。 转到作业和管道,并创建 ETL 管道

  3. 请让 Genie Code 迁移它。 打开 Genie Code,并向其输入你上传的项目路径作为提示,例如:

    小窍门

    在 /Volumes/my_catalog/my_schema/my_volume/my_project 上迁移项目

迁移的工作原理

开始迁移后,Genie Code 会生成一个计划,然后执行它:

  1. 读取源内容。 它读取源项目以了解其模型、转换和依赖项。
  2. 收集输入。 它会暂停以询问任何所需输入,例如是否生成 SQL 或 Python 管道源代码。
  3. 研究并生成中间表示(IR)。 它会分析项目,并构建一种独立于源工具、能够捕获管道逻辑的中间表示。
  4. 转换、验证和修复。 它将 IR 转换为流水线源代码,验证结果,并在修复循环中反复迭代,直到流水线正确无误。

注释

查看迁移的管道源并运行管道,以确认结果与原始项目匹配,然后再在生产环境中依赖它。

例子

请尝试以下提示以开始使用。

  • “使用 my_catalog.my_schema 中的 transactions 和 customers 表,构建并运行一个用于欺诈检测的 Medallion 架构管道。”
  • “解释此管道的每一步。
  • “修复此管道中的故障。”

其他资源