跳到主要内容
版本:8.2.0

GuanETL 使用指南

GuanETL 是什么

GuanETL 是观远 BI 的 ETL 开发和运行辅助工具。配合 AI Agent 使用时,用户可以用自然语言描述数据处理需求,例如“帮我修改销售订单清洗流程,过滤掉金额为空的记录”,AI 会自动读取 ETL 结构、修改处理逻辑、检查配置、预览结果,并在确认后保存到观远环境。

GuanETL 适合用于快速搭建数据清洗流程、修改现有 ETL、排查 ETL 运行失败原因、配置定时调度等场景。也适合在售前、实施、客户试用和内部验证阶段快速搭建 ETL 初稿。

使用 GuanETL 时,建议先在测试环境、演示环境或个人测试目录中生成和验证结果。涉及正式客户环境、生产目录或重要线上 ETL 时,请先确认字段口径、输出位置、下游依赖和影响范围,再保存到正式环境。

说明

目前产品处于公测阶段,可以免费使用所有功能,公测后需要获得商业授权才能继续使用,如仍需体验请联系观远数据商务人员或客户成功经理(通常是贵公司当前的服务交流负责人)。

前提条件

安装 GuanETL 前,请确认电脑已安装 Node.js、npm 和 GuanCLI,并已完成 guancli auth login。GuanCLI 的安装和登录方式可参考 GuanCLI 使用指南

安装 GuanETL

方式一:通过 npm 命令全局安装

  1. 安装 GuanETL

    # 首次安装
    npm install -g @guandata/guanetl
    guanetl install-skill

    # 已安装过的更新版本
    npm update -g @guandata/guanetl
    guanetl install-skill
    说明

    guanetl install-skill 该命令会为 AI Agent 安装 GuanETL 的工具使用说明,让 AI 知道何时调用 GuanETL 开发、检查或运行 ETL。它不替代 GuanCLI 登录,操作 ETL 时仍会复用 GuanCLI 的认证配置。

    安装完成后,即可在 Codex、Cursor、Claude Code 等 AI 工具中用自然语言提出 ETL 开发需求,例如:

    请帮我查看“销售订单清洗”这个 ETL,说明它用了哪些数据和主要处理逻辑,先不要修改。
  2. 安装完成后验证

    guanetl version

    终端显示版本号即表示安装成功。

    说明

    如果安装成功但执行 guanetl version 提示找不到命令,通常是 npm 全局命令目录未加入系统 PATH。可执行以下命令查看全局目录,将对应目录加入 PATH 后重新打开终端。

    npm prefix -g

方式二:通过 Agent 辅助安装

直接把下面的需求发给 AI Agent,让 Agent 协助检查环境、安装工具并验证命令是否可用:

请帮我检查当前电脑是否已经安装 Node.js、GuanCLI 和 GuanETL。
如果 GuanETL 未安装,请帮我安装,指令为 npm install -g @guandata/guanetl,并确认 guanetl version 可以正常执行。
并帮我执行 guanetl install-skill,确认安装完成。

登录 BI 环境

GuanETL 使用 GuanCLI 的认证配置。只要 guancli auth login 登录成功,GuanETL 后续查询 ETL、修改流程、保存和运行任务时会自动复用当前认证信息。详细配置可参考 登录 GuanCLI

使用 GuanETL 开发 ETL

用户通常不需要手动执行每一条 GuanETL 命令。更推荐的方式是在 AI Agent 中直接描述业务需求,让 AI 先查清楚相关数据和流程,再完成修改、检查和结果说明。

首次使用时,建议按以下阶段逐步验证。先确认工具和登录环境,再选择低风险 ETL,最后才进行修改、保存、运行或调度。

第一阶段:检查安装和登录状态

发给 Agent:

请帮我检查当前电脑是否已经安装 GuanCLI 和 GuanETL,并确认当前是否已经登录观远环境。只做检查,不要修改任何 ETL。

Agent 应该确认:

  • guanetl 是否可用。
  • guancli 是否可用。
  • 当前登录的是哪个观远环境。
  • 当前账号是谁。

目标是确认工具和登录状态正常,并且没有连错环境。

第二阶段:找一个低风险 ETL

发给 Agent:

请帮我找一个名称里包含“测试”或“示例”的 ETL,列出它的名称、ID、目录、输入数据和输出结果。先不要打开草稿,也不要修改。

如果你已经知道要试的 ETL,可以直接说:

请先帮我查看这个 ETL 的基本信息,说明它用了哪些输入数据、最后生成什么结果。ETL 名称是“XXX”。

目标是先理解这个 ETL 是做什么的,确认它适合试用。

第三阶段:打开 ETL 草稿但不修改

发给 Agent:

请用 GuanETL 打开这个 ETL,生成本地草稿。打开后请告诉我草稿放在哪里、包含哪些文件,以及后续哪些文件可以改。先不要修改。

目标是验证 Agent 能正确打开 ETL,并且知道只能修改草稿中的 ETL 文件。

第四阶段:做一个小改动并先检查

选择一个很小、容易确认的改动,例如调整节点名称、补充一个简单过滤条件,或修改一段明确的 SQL。

发给 Agent:

请在这个 ETL 草稿里做一个小改动:订单金额为空的数据不要进入最终结果。改完后先检查配置和结果,暂时不要保存到线上。请告诉我你改了什么、检查是否通过、结果是否符合预期。

目标是验证 Agent 能完成“修改草稿 -> 检查配置 -> 查看结果 -> 汇报”的闭环。

第五阶段:确认后再保存

只有在你确认检查结果没问题后,再发给 Agent:

检查结果我确认了。请保存到观远环境。保存前再确认一次当前环境和目标 ETL,保存后告诉我是否成功。

目标是验证保存链路。生产环境中,不建议跳过这一步确认。

第六阶段:需要时再运行并等待结果

如果需要验证 ETL 全链路运行,再发给 Agent:

请运行刚才保存的 ETL,并等待任务结束。如果失败,请告诉我真实错误信息和下一步排查建议。

目标是确认服务端运行最终成功,而不是只确认“已经开始运行”。

说明

“已开始运行”只表示观远已经接受了运行请求,流程可能还在运行,也可能后面失败。建议让 Agent 等待任务终态。

第七阶段:尝试设置定时任务或删除前检查

设置定时任务前,可以这样说:

请把这个 ETL 设置为每天凌晨 3 点自动运行。设置前先确认当前环境和目标 ETL,设置后用简单的话说明规则。

删除前可以这样说:

请帮我检查这个 ETL 能不能删除。只做删除前检查,告诉我会影响哪些输出数据、有没有页面或其他流程还在使用它。不要直接删除。

目标是验证高风险操作前,Agent 会先检查影响范围,而不是直接执行。

使用建议

  • 首次试用建议选择测试环境、个人目录或测试目录下的 ETL。
  • 先说清楚业务目标和数据口径,不要只说“帮我改一下 ETL”。
  • 优先选择输入输出关系清楚、字段含义明确的 ETL。
  • 保存、运行、调度、删除前,先确认当前环境、字段口径、输出结果和影响范围。
  • 让 AI 先说明“准备保存、运行或设置定时任务”以及影响范围,再由你确认。
  • 生产环境执行前,让 Agent 列出即将执行的命令。
  • 不建议首次使用就选择生产环境核心链路、多人同时维护的关键 ETL,或下游依赖复杂的 ETL。

常见问题排查

问题一:安装后提示找不到 guanetl 命令

先确认安装成功:

npm list -g @guandata/guanetl

再检查 npm 全局命令目录是否在 PATH 中:

npm prefix -g

Windows 全局命令通常位于 %AppData%\npm,macOS/Linux 通常位于 $(npm prefix -g)/bin。加入 PATH 后,请重新打开终端。

问题二:AI 没有自动使用 GuanETL

可以在问题中明确写:

请使用 GuanETL 修改这个 ETL。

或:

请按 GuanETL 的方式,先读取 ETL 结构,再修改、检查并保存。

如果仍然没有自动调用,请确认已经执行:

guanetl install-skill

问题三:提示未登录或认证失败

先查看 GuanCLI 登录状态:

guancli auth status

如果未登录或登录已失效,请重新登录:

guancli auth login

如果有多个环境,请确认当前 profile 是否正确:

guancli auth list
guancli auth use <环境名称>

问题四:保存失败怎么办

先不要反复直接保存。建议让 Agent:

  1. 查看保存失败的具体原因。
  2. 重新做配置检查。
  3. 检查是否复用了旧工作目录。
  4. 必要时重新打开线上最新版本,再做最小修改。
  5. 做最小修改后再次验证。

可以这样说:

保存失败了。请不要直接重复保存。先分析失败原因,如果可能是线上版本已经变化,请重新打开最新版本,再做最小修改和检查。

问题五:检查结果显示 0 行,是不是失败

不一定。检查成功但结果是 0 行,可能只是筛选条件太严格,或输入数据本身没有匹配记录。

可以让 Agent 继续检查:

检查结果是 0 行。请先看看源数据有没有数据,再检查过滤条件、关联条件和字段类型。

问题六:提示“已开始运行”,是不是就成功了

不是。“已开始运行”只表示观远已经接受了运行请求。流程可能还在运行,也可能后面失败。

建议使用:

guanetl run <etl_id> --wait --timeout 600

或:

guanetl task wait <taskId>

问题七:AI 会改电脑上的哪些内容

正常情况下,AI 只应该修改当前 ETL 草稿目录里的流程文件,例如:

  • etl/etl.go
  • etl/*.sql
  • 必要时修改 etl/meta.json

下面这些是工具自动生成或维护的文件,不要手工修改:

  • _guanetl_state.json
  • _input.json
  • _base_etl.json
  • _exported.json

这些是系统状态或导出产物。

问题八:可以删除 ETL 吗

可以,但要谨慎。GuanETL 默认会先做“删除前检查”,不会直接删除:

guanetl delete <etl_id>

确认后才执行:

guanetl delete <etl_id> --yes

如果要同时删除输出数据集,只有在安全检查通过时才建议执行:

guanetl delete <etl_id> --cascade --yes

问题九:权限和安全怎么处理

GuanETL 的权限与观远平台保持一致。建议:

  • 使用测试环境或测试目录试做。
  • 保存、执行、调度、删除前先确认当前环境。
  • 不在提示词里粘贴账号密码、Token、客户隐私和敏感业务数据。
  • 修改关键 ETL 前确认输入、输出、下游依赖和业务口径。
  • 生产环境执行前让 Agent 列出即将执行的命令。