SuperAPI AI 工具集

data-pipelines

数据与分析

查看项目

更新于 10-15 23:48

技能介绍

该技能用于构建数据管道,整体模式为:摄取(把数据导入)→ 转换(清洗、建模、连接)→ 查询(分析)→ 探索(笔记本、应用、可视化)。各步骤的具体工具取决于项目,首选默认如下:摄取用 dlt,备选纯 Python 脚本或 shell + curl;转换用 sqlmesh,备选纯 SQL 脚本、dbt、Python 脚本;查询引擎用 DuckDB / MotherDuck;DataFrame 用 polars;笔记本用 marimo;项目管理用 uv;可视化用 altair、seaborn。语言偏好为 SQL 优先(DuckDB 方言),其次 Python,最后 bash,使用能完成任务的最简单语言。

项目布局建议:project/ 下含 ingest/(每个数据源一个脚本,使用 dlt 时有 .dlt/ 配置)、transform/(models/ 放 SQL 模型,使用 sqlmesh 时有 config.yaml)、notebooks/(marimo 笔记本,普通 .py 文件)、data/(本地数据,gitignore)、pyproject.toml、uv.lock(提交)、*.duckdb(gitignore)。并非每个项目都需要全部目录,简单分析可能只需 notebooks/ 和一个 DuckDB 文件,按需扩展。

使用 uv 管理项目,不要直接使用 pip:uv init、uv add、uv sync、uv run python script.py、uv run --with requests script.py。独立脚本可用 PEP 723 内联依赖,以 uv run script.py 运行并自动解析依赖,始终提交 uv.lock,用 pyproject.toml 声明依赖而非 requirements.txt。polars 用于需要 Python 逻辑时(复杂字符串转换、ML 特征、行级条件),连接、聚合和窗口函数优先用 SQL,支持惰性求值,与 DuckDB 可通过 Arrow 零拷贝互操作。dlt 用于摄取,可处理 API 调用、分页、模式推断、增量加载与状态管理,写入处置有 append、replace、merge,目标包括 duckdb 和 motherduck。sqlmesh 用于转换,采用计划/应用工作流,模型类型包括 FULL、INCREMENTAL_BY_TIME_RANGE、INCREMENTAL_BY_UNIQUE_KEY、SEED、VIEW、SCD_TYPE_2,并可与 dlt 集成。

本技能涉及底层工具时需参考相关技能:DuckDB 语法参见 motherduck-duckdb-sql 或 duckdb-docs,MotherDuck 连接等参见 motherduck-* 技能,marimo 笔记本参见 marimo-notebook,本地 DuckDB 会话管理参见 attach-db、query、read-file。本资料未提供收费、价格、平台要求或效果等事实,相关内容暂未提供。