Repolode
apache

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. 1

    安装带可视化扩展的库

    pip install "apache-hamilton[visualization]"
  2. 2

    在系统中单独安装 Graphviz 以支持可视化

  3. 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 数据每日更新。

相关项目