一个 Python 库,可将 pandas、polars 等数据框转换为可拖拽的交互式可视化分析界面,适用于 Jupyter。
apache/hamilton
一个轻量级 Python 库,用普通函数定义可测试、可自文档化的数据转换 DAG,可在任何 Python 环境中运行。
- Star
- 2,615
- Fork
- 222
- 未关闭 Issue
- 189
- 最近提交
- 前天
这是什么?
Apache Hamilton 是一个 Python 库,用于把数据转换组织成有向无环图(DAG)。开发者只需编写普通 Python 函数,函数的参数名即声明了它对其他函数的依赖,Hamilton 会自动构建图结构,代码既易读也能直接可视化。
它将 DAG 的定义与执行分离,同一套转换可以在脚本、Notebook、Airflow 任务或 FastAPI 服务中运行。支持 @config.when() 在不同环境间切换逻辑,支持 @check_output 校验输出,并提供 SchemaValidator 适配器,用于追踪 pandas、polars、Ibis 等数据框的 schema。
项目还提供可选的 UI,用于管理 DAG 目录、分析数据集并追踪执行与数据血缘,可以本地启动,也可以用 Docker 自托管。项目目前是 Apache 软件基金会的孵化项目,最初由 Stitch Fix 开发。
核心功能
- 01用普通 Python 函数定义数据转换,依赖关系通过参数名声明。
- 02根据函数定义自动构建并可视化 DAG。
- 03通过 @config.when() 等函数修饰器减少不同环境间的重复代码。
- 04使用 @check_output 和 SchemaValidator 校验输出结果与数据框 schema。
- 05可选的 UI 用于追踪执行过程、数据血缘和数据集概况。
适用场景
- 在基于 pandas、polars 或 Spark 的流程中组织 ETL 管道与特征工程代码。
- 在 Notebook、Airflow 任务和 FastAPI 服务之间复用同一套转换代码。
- 为需要血缘追踪与数据校验的 RAG 或 LLM 数据准备步骤构建流程。
- 将数据科学代码从 Notebook 迁移到带可测试函数的生产模块中。
快速上手
- 1
安装带可视化扩展的库
pip install "apache-hamilton[visualization]" - 2
在系统中单独安装 Graphviz 以支持可视化
- 3
启动 Apache Hamilton UI 服务器
hamilton ui
使用前须知
- DAG 可视化需要单独安装 Graphviz。
- 该项目仍处于 Apache 孵化阶段,尚未获得 ASF 的完全认可。
标签
常见问题
- hamilton 是什么?
- 一个轻量级 Python 库,用普通函数定义可测试、可自文档化的数据转换 DAG,可在任何 Python 环境中运行。 Apache Hamilton 是一个 Python 库,用于把数据转换组织成有向无环图(DAG)。开发者只需编写普通 Python 函数,函数的参数名即声明了它对其他函数的依赖,Hamilton 会自动构建图结构,代码既易读也能直接可视化。
- hamilton 可以免费使用吗?用的什么许可证?
- hamilton 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- hamilton 还在维护吗?
- 活跃维护中。hamilton 最近一次提交是在 2026年10月21日。
- hamilton 适合用来做什么?
- 在基于 pandas、polars 或 Spark 的流程中组织 ETL 管道与特征工程代码。 在 Notebook、Airflow 任务和 FastAPI 服务之间复用同一套转换代码。 为需要血缘追踪与数据校验的 RAG 或 LLM 数据准备步骤构建流程。 将数据科学代码从 Notebook 迁移到带可测试函数的生产模块中。
- hamilton 怎么安装和运行?
- 安装带可视化扩展的库: pip install "apache-hamilton[visualization]" 在系统中单独安装 Graphviz 以支持可视化 启动 Apache Hamilton UI 服务器: hamilton ui
- 在哪里获取 hamilton?
- 源代码和安装说明在 GitHub 上:https://github.com/apache/hamilton
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
开源数据搬运平台,用于 ELT 管道,把 API、数据库和文件中的数据同步到数据仓库、数据湖和 AI 应用。
微软推出的 10 周 20 课数据科学入门课程,基于 Python 讲解数据处理与可视化。
精选的 Python 数据科学资源清单,涵盖库、教程、书籍、数据集和演讲。
一个响应式 Python 笔记本,自动重算依赖单元格,以纯 .py 文件存储,可作为脚本运行或部署为应用。
用于定义、运行和监控数据资产(表、数据集、机器学习模型、报表)的 Python 编排平台。