用途:在 Windmill 中编写或修改数据管道。管道不是 flow,而是一组各自独立部署、通过共享存储资产(DuckLake 表、data table、S3 对象、volume、resource)与 on/materialize 注释连线成 DAG 的脚本,在 /pipeline/<folder> 查看编辑。
主要能力:脚本以本语言注释语法开头写 pipeline 注释即成为管道节点(SQL 用 --、Python/Bash 用 #、TS/JS 用 //)。用 on <ref> 声明触发来源,可为资产 URI 或 schedule、webhook、email、kafka、mqtt、amqp、nats、postgres、sqs、gcp、data_upload 等原生触发类型(触发行需另行创建)。默认可选 DuckDB + DuckLake:产出表用 duckdb 节点,以 materialize ducklake://<name>/<table> 物化,正文写裸 SELECT 由运行时执行写入;追加用 INSERT INTO ... SELECT,合并用 key=<col>。Python/TS 采数用 wmill.ducklake() 或 wmill.datatable() 直接写表,避免中转文件。可用分区(partitioned,配 wm_partition 宏与 {partition} 令牌)、freshness、tag、retry、data_test、measure/dimension 等注释。
必要用法:同一 folder 放所有节点;本地用 wmill script new f/<folder>/<name> <language> 创建,wmill pipeline show <folder> --local 查看图,wmill pipeline dev 预览,wmill pipeline run <folder> --local 运行(--dry-run 先打印计划)。资产 URI 与 S3 key 必须写字面量,不能是变量;S3 默认存储写作 s3:///<key>,次级存储为 s3://<storage>/<key>。用户未要求时不要部署。
限制:DuckLake 管道需工作区已配置对象存储与 DuckLake catalog(wmill ducklake list 可查),否则无法运行,应由管理员在 Workspace settings 配置;托管 materialize 仅限 DuckDB 且目标为 DuckLake 表;measure/dimension 仅对 DuckLake 且需配合 materialize;dbt:// 目标仅限 manual 模式且不能加 data_test。其他细节暂未提供。