@guandata/guanetl
v0.1.37
Published
观远 ETL 本地开发工具 - 拉取、编辑、导出、预览、保存 ETL
Readme
guanetl
观远 ETL 本地开发工具,支持拉取、编辑、导出、预览、保存 ETL。
本地安装(开发/测试阶段)
# 编译所有平台 binary(需要 Go 工具链)
npm run build
# 安装到本地 node global
npm link安装后即可在终端使用:
guanetl edit <etl_id> --dir <work_dir>
guanetl export --dir <work_dir>
guanetl preview <node_id> --dir <work_dir>
guanetl preview <node_id> --dir <work_dir> --require-nonempty
guanetl save --dir <work_dir>说明:npm 包名为 @guandata/guanetl,用户侧 CLI 命令统一为 guanetl。
标准 ETL 写入闭环:create/edit → export → preview → save → run --wait。如果目标 ETL 依赖的智能 ETL 上游也需要刷新,可先用 guanetl run <etl_id> --run-upstream --dry-run 查看拓扑计划,再用 guanetl run <etl_id> --run-upstream 从最上游依次执行并等待完成。
多环境操作使用 GUANCLI_PROFILE=<profile> 固定当前进程链。写命令会先解析实际底层 CLI,再在 stderr 回显对应目标:guancli 显示 profile,guancli-lite 显示脱敏后的 GUANCLI_BASE_URL 主机,自定义 shim 不推测其环境语义。可先运行 GUANCLI_PROFILE=<profile> guancli auth status 核对环境名和 URL,不需要切换机器级默认 profile。
preview 返回 0 行时默认输出 warning 并保持兼容的成功退出码;自动化发布或要求输出必须有数据时使用 preview --require-nonempty,并仅在命令成功后继续 save。
create 只申请 dataFlowId 并初始化本地工作区,首次 save 成功后才形成可被服务端 get/edit/move 查询和操作的完整 ETL。首次 save 时若服务端尚无 edit 基线,CLI 会输出 信息 [save.first_save_fallback] 并使用本地 base,这是正常路径。警告 [save.edit_fallback] 则表示其他 edit 读取故障后发生了兼容回退,需要检查网络、权限和本地基线。
触发成功 ≠ ETL 执行成功:
run返回"执行已触发"仅表示后端接受了请求。使用run --wait等待终态,FAILED 时会展示真实错误消息;如果同一 ETL 已被级联触发并正在运行,run --wait会通过当前 ETL 的最近执行信息恢复 taskId 并等待,不需要查询管理员级全局运行任务列表。触发前会检查直接上游数据集状态和服务端 JOIN 键类型;发现风险时先告警但继续执行,可分别用--skip-upstream-check、--skip-join-type-check跳过检查。run --run-upstream会包含目标 ETL 本身,并对计划内每个 ETL 等待终态;任一上游执行失败时会停止后续节点。
新建 ETL 时注意目录树不同:create --parent-dir 使用 ETL 目录树 id,输出数据集目录使用 DATA_SET 目录树 id。可用 guancli etl tree / guancli ds tree 分别查询,或用 guanetl mkdir-pair 成对创建。guancli workflow tree 是工作流/经典数据流目录树,不能作为智能 ETL 的 create --parent-dir。
移动已有 ETL 使用 guanetl move <etl_id> [etl_id...] --dir-id <etl_dir_id>;目标目录同样来自 guancli etl tree,可先加 --dry-run 查看请求体。
export 成功后会自动输出本地静态检查提示;preview 和 save 也会在远端调用前重新检查 _exported.json。其中 BasicCalculator 的每个 Formula 都应显式填写 Type,否则可能导致下游原生 GroupBy/Join 节点出现静态类型警告。JOIN 键两侧类型不一致时会提示隐式 coercion 风险;STRING 与数值类型 JOIN 时,纯数字字符串可能匹配,"001" 可能折叠后匹配数值 1,非数字值可能无法匹配,超长 ID 可能丢失精度,业务标识键应统一为 STRING。warning 不阻断执行,确定性 lint error 会在 preview/save 的远端调用前阻断;save --dry-run --format json 的 warning 只写 stderr,不污染 JSON stdout。
也可以为 AI Coding Assistant 安装 Skill:
guanetl install-skill
npm install -g --foreground-scripts @guandata/guanetl/npm link --foreground-scripts会通过 postinstall 自动刷新 skill,并显示明确的成功、失败或跳过结果;上述guanetl install-skill仅用于失败后的手动修复或排查。CI 等无需 skill 的环境可设GUAN_SKIP_INSTALL_SKILL=1跳过。
安装包会通过 npm optionalDependencies 自动选择当前系统的原生二进制。不要使用 --omit=optional 或 optional=false;企业 npm 镜像也需要同步对应的 @guandata/guanetl-<平台>-<架构> 包。若平台包缺失,CLI 会显示对应包名和重新安装方法。
版本更新
@guandata/guanetl 0.1.37
- 安装时自动选择当前系统和架构的原生程序,减少下载量与磁盘占用,原有安装命令不变;离线安装也支持自动选包。
@guandata/guanetl 0.1.36
- 同步本次发布的内部依赖更新,无用户可见行为变化。
@guandata/guanetl 0.1.35
- 同步共享鉴权与环境识别更新,支持识别内部 OAuth2 应用认证环境。
@guandata/guanetl 0.1.34
- 新建 ETL 要求指定目标目录并确认落位计划,完成后返回访问链接和存储路径。
- 执行等待改为按 ETL ID 跟踪,移除旧的全局任务查询入口。
- DSL 提供类型化枚举和常量;缺失或非法选项会在提交前明确失败。
@guandata/guanetl 0.1.33
- 修复 Windows npm 全局安装场景下的 CLI 执行器定位问题。
- 区分 CLI 身份与程序路径,提升 Profile 上下文和底层调用稳定性。
@guandata/guanetl 0.1.32
- 同步底层运行时兼容性与稳定性更新。
@guandata/guanetl 0.1.31
- 修复历史 ETL 节点 ID 含下划线时被导出校验误判的问题,已有任务可正常导出并继续编辑。
@guandata/guanetl 0.1.30
- 新增只删除空目录的
rmdir,非空目录会列出阻塞资源并拒绝操作。 - 导出校验失败不再污染本地元数据,dry-run 的资源名称和后续提示更准确。
- 调度新增 cron 与 ETL 存在性预检,任务不存在会立即返回真实错误。
- 结构化错误和非零退出状态更适合自动化流程判断。
@guandata/guanetl 0.1.29
- ETL 调度配置适配受限网络代理,提升客户环境中的保存成功率。
- 支持企业 OIDC 认证上下文,并同步升级底层请求兼容能力。
@guandata/guanetl 0.1.28
- 改进 Skill 自动安装反馈和删除确认流程。
- 优化 Windows 环境下的 CLI 启动兼容性。
@guandata/guanetl 0.1.27
- 优化 ETL 首次运行后的输出校验,临时输出数据集完成生成后再进行字段检查,首次运行更稳定。
- 增强输出字段注册与查询结果校验,减少首次运行时的误报和阻断。
@guandata/guanetl 0.1.26
- 新增输出数据集落位校验,提升 ETL 保存和运行后的结果一致性。
- 修复 ETL 编辑往返时配置丢失和输出绑定字段错位问题。
- 保存影响报告补充字段级变更明细,便于了解具体调整内容。
@guandata/guanetl 0.1.25
- ETL 已在运行时可直接跟踪当前任务,无需管理员级全局任务权限。
- 执行完成后会核验新增输出字段是否已完成物化、注册并可查询,避免任务成功但字段不可用。
- 预览输出会明确区分 CLI 展示行数与后端样本或数据集总量,减少对数据规模的误判。
@guandata/guanetl 0.1.24
- ETL 预览支持一次选择多个节点,并按批次并行执行,复杂流程的检查效率更高。
- 创建 ETL 后会直接显示可编辑的
etl.go骨架,Agent 可立即继续编写和保存流程。 - 优化大型目录树的查询指引,并更新底层依赖以提升安全性和运行稳定性。
@guandata/guanetl 0.1.23
- ETL 写操作会准确提示实际目标环境,混合安装或切换环境时更容易确认操作位置。
- 创建流程会明确区分本地工作区初始化和首次保存,避免把尚未保存误判为创建失败。
@guandata/guanetl 0.1.22
- 增强受控 Agent 运行环境中的 ETL 脚本执行与文件交换,大型导出不再受小缓冲区限制。
@guandata/guanetl 0.1.21
- JOIN 字段类型检查覆盖预览、保存和运行全过程,可提前发现字符串、数值、日期等类型不匹配风险。
- 增强字段别名、计算字段和多级上游 ETL 的识别,复杂 ETL 保存与运行前的诊断更准确。
- 优化多数据集结构读取效率,批量检查复杂 ETL 时等待更少。
@guandata/guanetl 0.1.20
save会在同目录同名输出唯一匹配时自动恢复原输出节点 id 和 dsId,避免编辑已有 ETL 时误建新输出数据集。- 替换或移除已绑定输出默认阻断;确需替换时显式使用
--allow-output-replacement,并自行迁移下游 dsId 引用。 - 预览结果为空时会明确提醒;自动化流程可要求必须返回数据后再继续保存。
- 全局安装或升级后自动刷新 AI Skill,并随包提供完整使用说明和参考资料。
@guandata/guanetl 0.1.19
- 新增
move命令,支持将一个或多个智能 ETL 移动到指定 ETL 目录,并在接口异常时读回确认移动结果。 run新增--run-upstream与配套--dry-run,支持递归解析智能 ETL 上游链路、按拓扑顺序执行并等待每个节点完成。run --wait遇到同一 ETL 已在运行的 40001 响应时,会从当前 ETL 的最近执行信息恢复 taskId 并等待其完成,不依赖管理员级全局运行任务接口。export静态检查新增 JOIN 键类型不一致 warning,提示 STRING/LONG 等隐式 coercion 风险。
@guandata/guanetl 0.1.18
- 创建 ETL 时目录类型诊断更清晰,会识别误用工作流/经典数据流目录的场景,并提示使用智能 ETL 目录。
- 更新使用说明,明确智能 ETL、数据集输出目录和工作流目录的边界。
@guandata/guanetl 0.1.17
install-skill适配 WorkBuddy 配置目录,提升本机编码助手安装兼容性。
@guandata/guanetl 0.1.16
save --dry-run增加保存影响预览基础能力,帮助在提交前检查关键配置变化。run会在执行前提示上游数据集失败状态,降低基于异常上游继续执行的风险。schedule修复上游触发调度的默认输入处理,减少调度配置误差。export/save增强输入字段类型校验,并在preview中提示 LEFT JOIN 桥接列全空样本。
@guandata/guanetl 0.1.15
save增强输出数据集保护,保留级联相关配置,并对追加写入场景的行数据结构提前校验。- 补充多输出数据集和追加写入保存流程说明,降低 ETL 保存时误改输出配置的风险。
@guandata/guanetl 0.1.14
- 移除
delete命令。ETL / 数据集删除属于高风险操作,后续不再通过 guanetl 暴露。 - 修复
edit -> export -> save保存已绑定输出数据集时,导出空dataSource覆盖服务端绑定并触发保存保护的问题。 run --wait明确区分触发响应状态与最终执行结果,避免把触发任务的FINISHED误读为 ETL 执行成功。- 修复 ETL 导出与 merge 过程中部分节点字段丢失问题,并补充相关测试覆盖。
@guandata/guanetl 0.1.13
lint增加字段 raw name 与 alias/displayName 疑似误用诊断,帮助识别 SQL/算子字段引用风险。create/save增加目录树类型 preflight,区分 ETL 目录和 DATA_SET 输出目录,并支持必要时跳过检查。save增加输出数据集绑定风险检查,提前拦截可能创建重名输出或输出数据集 rename 未同步的 payload。export成功后会输出静态检查提示,并补充BasicCalculator/Formula.Expr字段引用、类型和函数说明。
@guandata/guanetl 0.1.12
import去掉对 guanetl-server 的依赖,改为基于 BI 数据集 schema 在本地生成 SQL。- 新增本地 SQL 生成与 schema provider 测试覆盖,提升 ETL 导入链路稳定性。
create/edit/import路径适配新的本地导入链路。install-skill增加 WorkBuddy skill 安装路径支持。
0.1.11
- 优化试用账号场景下的运行上下文识别,提升命令执行记录与问题排查的一致性。
- 重新构建发布产物,纳入共享运行上下文处理更新。
卸载
npm unlink -g @guandata/guanetl支持平台
- macOS (Apple Silicon / Intel)
- Windows (x64)
开发
# 编译所有平台 binary(需要 Go 工具链)
npm run build