GitRead 中文社区
首页趋势排行榜原创文章严选周刊
更多资源
新手训练营
精选专题热门话题GitHub 文档资源精选实战指南

hamilton

Apache Hamilton帮助数据科学家和工程师定义可测试的、模块化的、自我记录的数据流,这些数据流对谱系/跟踪和元数据进行编码。扩展和扩展Python所做的任何地方。

  • 语言Jupyter Notebook
  • 默认分支main
  • 大小194.0 MB
  • 更新1 天前
  • Issues109
在 GitHub 打开
avatarapache

项目介绍

apache/hamilton 是一个托管在 GitHub 上的开源项目,主要使用 Jupyter Notebook 编写,采用 Apache License 2.0 许可证,目前获得 2.6k 个 Star、230 次 Fork。

仓库全名
apache/hamilton

README 摘要

Apache Hamilton — portable & expressive data transformation DAGs Disclaimer Apache Hamilton is an effort undergoing incubation at the Apache Software Foundation (ASF), sponsored by the Apache Incubator PMC. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other…

完整内容见 GitHub 原始 README 或本页 。

常见问题

hamilton 用什么语言开发?

主要使用 Jupyter Notebook 编写,采用 Apache License 2.0 许可证,目前有 2.6k 个 Star。

hamilton 可以免费商用吗?

仓库采用 Apache License 2.0 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 hamilton 的源码?

可以直接克隆仓库:git clone https://github.com/apache/hamilton.git,默认分支为 main;安装与运行步骤见仓库 README。

hamilton 最近还在维护吗?

仓库最近一次更新为 1 天前,当前有 109 个未关闭 Issue;Star 数为 2.6k,可作为社区活跃度的参考。

本页面展示项目元数据与原始 README,GitRead 中文社区 编辑团队负责选题收录。

相关仓库

jackfrued/Python-100-Days avatar
Python-100-Daysjackfrued
7月29日
187.8k
55.7k
724

Python——100天从新手到大师

Jupyter Notebook
396.1 MB
8
详情
microsoft/generative-ai-for-beginners avatar
generative-ai-for-beginnersmicrosoft
4 天前
123.2k
66.2k
18

21 节课,开始使用生成式 AI 构建

aiazurechatgpt+11
Jupyter Notebook
6.3 GB
0
详情
rasbt/LLMs-from-scratch avatar
LLMs-from-scratchrasbt
2 天前
108.1k
16.7k
2

从零开始,逐步用 PyTorch 实现一个类似 ChatGPT 的大语言模型

aiartificial-intelligenceattention-mechanism+16
Jupyter Notebook
16.7 MB
0
详情
microsoft/ML-For-Beginners avatar
ML-For-Beginnersmicrosoft
2 天前
92.1k
22.9k
27

12周,26节课,52个小测验,面向所有人的经典机器学习

data-scienceeducationmachine-learning+9
Jupyter Notebook
2.2 GB
0
详情
microsoft/ai-agents-for-beginners avatar
ai-agents-for-beginnersmicrosoft
2 天前
79.3k
26.0k
5

开始构建 AI 智能体的 18 节课

agentic-aiagentic-frameworkagentic-rag+8
Jupyter Notebook
3.6 GB
0
详情
openai/openai-cookbook avatar
openai-cookbookopenai
2 天前
77.0k
13.1k
354

使用 OpenAI API 的示例和指南

chatgptgpt-4openai+1
Jupyter Notebook
976.3 MB
0
详情
CompVis/stable-diffusion avatar
stable-diffusionCompVis
2024年6月18日
73.6k
10.7k
619

一个潜空间文本到图像扩散模型

Jupyter Notebook
42.7 MB
0
详情
microsoft/AI-For-Beginners avatar
AI-For-Beginnersmicrosoft
4 天前
70.7k
13.8k
8

12 周,24 节课,人人可用的 AI!

aiartificial-intelligencecnn+7
Jupyter Notebook
1.3 GB
0
详情

关于

dagdata-analysisdata-engineeringdata-sciencedataframeetletl-frameworketl-pipelinefeature-engineeringhacktoberfestlineagellmopsmachine-learningmlopsorchestrationpandaspythonragsoftware-engineering
  • Apache License 2.0
  • 2.6k Stars
  • 230 Forks
  • 16 Watching

简要分析

热度分
3101
价值分
1640
活跃状态
活跃
GitHub

语言占比

CSS
Dockerfile
HTML
JavaScript
Jinja
Jupyter Notebook
Python
Shell
TypeScript

Release

  • apache-hamilton-v1.90.0-incubating4月26日
  • v1.89.0-incubating apache-hamilton release2025年10月12日
  • v1.89.0-incubating-RC12025年10月5日
  • sf-hamilton-1.88.02025年3月30日
  • sf-hamilton-1.87.02025年2月12日

贡献者

skrawczskrawczelijahbenizzyelijahbenizzydependabot[bot]dependabot[bot]ziltoziltoDev-iLDev-iLjernejfrankjernejfrankcswartzvicswartzvijameslambjameslambbryangalindobryangalindoJoJo10SmithJoJo10Smithswapdewalkarswapdewalkarpjfanningpjfanning

Apache Hamilton — portable & expressive
data transformation DAGs

Documentation Status Python supported PyPi Version Total Downloads Total Monthly Downloads
Apache Hamilton Slack


Disclaimer

Apache Hamilton is an effort undergoing incubation at the Apache Software Foundation (ASF), sponsored by the Apache Incubator PMC.

Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects.

While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.

Apache Hamilton (incubating) is a lightweight Python library for directed acyclic graphs (DAGs) of data transformations. Your DAG is portable; it runs anywhere Python runs, whether it’s a script, notebook, Airflow pipeline, FastAPI server, etc. Your DAG is expressive; Apache Hamilton has extensive features to define and modify the execution of a DAG (e.g., data validation, experiment tracking, remote execution).

To create a DAG, write regular Python functions that specify their dependencies with their parameters. As shown below, it results in readable code that can always be visualized. Apache Hamilton loads that definition and automatically builds the DAG for you!

Create a project
Functions B() and C() refer to function A via their parameters

Apache Hamilton brings modularity and structure to any Python application moving data: ETL pipelines, ML workflows, LLM applications, RAG systems, BI dashboards, and the Apache Hamilton UI allows you to automatically visualize, catalog, and monitor execution.

Apache Hamilton is great for DAGs, but if you need loops or conditional logic to create an LLM agent or a simulation, take a look at our sister library Burr 🤖 .

Installation

Apache Hamilton supports Python 3.11+. We include the optional visualization dependency to display our Apache Hamilton DAG. For visualizations, Graphviz needs to be installed on your system separately.

pip install "apache-hamilton[visualization]"

To use the Apache Hamilton UI, install the ui and sdk dependencies.

pip install "apache-hamilton[ui,sdk]"

To try Apache Hamilton in the browser, visit www.tryhamilton.dev

Why use Apache Hamilton?

Data teams write code to deliver business value, but few have the resources to standardize practices and provide quality assurance. Moving from proof-of-concept to production and cross-function collaboration (e.g., data science, engineering, ops) remain challenging for teams, big or small. Apache Hamilton is designed to help throughout a project’s lifecycle:

  • Separation of concerns. Apache Hamilton separates the DAG “definition” and “execution” which lets data scientists focus on solving problems and engineers manage production pipelines.

  • Effective collaboration. The Apache Hamilton UI provides a shared interface for teams to inspect results and debug failures throughout the development cycle.

  • Low-friction dev to prod. Use @config.when() to modify your DAG between execution environments instead of error-prone if/else feature flags. The notebook extension prevents the pain of migrating code from a notebook to a Python module.

  • Portable transformations. Your DAG is independent of infrastructure or orchestration, meaning you can develop and debug locally and reuse code across contexts (local, Airflow, FastAPI, etc.).

  • Maintainable DAG definition. Apache Hamilton automatically builds the DAG from a single line of code whether it has 10 or 1000 nodes. It can also assemble multiple Python modules into a pipeline, encouraging modularity.

  • Expressive DAGs. Function modifiers are a unique feature to keep your code DRY and reduce the complexity of maintaining large DAGs. Other frameworks inevitably lead to code redundancy or bloated functions.

  • Built-in coding style. The Apache Hamilton DAG is defined using Python functions, encouraging modular, easy-to-read, self-documenting, and unit testable code.

  • Data and schema validation. Decorate functions with @check_output to validate output properties, and raise warnings or exceptions. Add the SchemaValidator() adapter to automatically inspect dataframe-like objects (pandas, polars, Ibis, etc.) to track and validate their schema.

  • Built for plugins. Apache Hamilton is designed to play nice with all tools and provides the right abstractions to create custom integrations with your stack. Our lively community will help you build what you need!

Apache Hamilton UI

You can track the execution of your Apache Hamilton DAG in the Apache Hamilton UI. It automatically populates a data catalog with lineage / tracing and provides execution observability to inspect results and debug errors. You can run it as a local server or a self-hosted application using Docker.

Description1 Description2 Description3

DAG catalog, automatic dataset profiling, and execution tracking

Get started with the Apache Hamilton UI

  1. To use the Apache Hamilton UI, install the dependencies (see Installation section) and start the server with

    hamilton ui
    
  2. On the first connection, create a username and a new project (the project_id should be 1).

Create a project

  1. Track your Apache Hamilton DAG by creating a HamiltonTracker object with your username and project_id and adding it to your Builder. Now, your DAG will appear in the UI’s catalog and all executions will be tracked!

    from hamilton import driver
    from hamilton_sdk.adapters import HamiltonTracker
    import my_dag
    
    # use your `username` and `project_id`
    tracker = HamiltonTracker(
        username="my_username",
        project_id=1,
        dag_name="hello_world",
    )
    
    # adding the tracker to the `Builder` will add the DAG to the catalog
    dr = (
        driver.Builder()
        .with_modules(my_dag)
        .with_adapters(tracker)  # add your tracker here
        .build()
    )
    
    # executing the `Driver` will track results
    dr.execute(["C"])
    

Documentation & learning resources

  • 📚 See the official documentation to learn about the core concepts of Apache Hamilton.

  • 👨‍🏫 Consult the examples on GitHub to learn about specific features or integrations with other frameworks.

  • 📰 The DAGWorks blog includes guides about how to build a data platform and narrative tutorials.

  • 📺 Find video tutorials on the DAGWorks YouTube channel

  • 📣 Reach out via the Apache Hamilton Slack community for help and troubleshooting

How does Apache Hamilton compare to X?

Apache Hamilton is not an orchestrator (you might not need one), nor a feature store (but you can use it to build one!). Its purpose is to help you structure and manage data transformations. If you know dbt, Apache Hamilton does for Python what dbt does for SQL.

Another way to frame it is to think about the different layers of a data stack. Apache Hamilton is at the asset layer. It helps you organize data transformations code (the expression layer), manage changes, and validate & test data.

Layer Purpose Example Tools
Orchestration Operational system for the creation of assets Airflow, Metaflow, Prefect, Dagster
Asset Organize expressions into meaningful units
(e.g., dataset, ML model, table)
Apache Hamilton, dbt, dlt, SQLMesh, Burr
Expression Language to write data transformations pandas, SQL, polars, Ibis, LangChain
Execution Perform data transformations Spark, Snowflake, DuckDB, RAPIDS
Data Physical representation of data, inputs and outputs S3, Postgres, file system, Snowflake

See our page on Why use Apache Hamilton? and framework code comparisons for more information.

📑 License

Apache Hamilton is released under the Apache 2.0 License. See LICENSE for details.

🌎 Community

👨‍💻 Contributing

We’re very supportive of changes by new contributors, big or small! Make sure to discuss potential changes by creating an issue or commenting on an existing one before opening a pull request. Good first contributions include creating an example or an integration with your favorite Python library!

To contribute, checkout our contributing guidelines, our developer setup guide, and our Code of Conduct.

😎 Used by

Apache Hamilton was started at Stitch Fix before the original creators founded DAGWorks Inc! The library is battle-tested and has been supporting production use cases since 2019.

Read more about the origin story.

  • Stitch Fix — Time series forecasting
  • UK Government Digital Services — National feedback pipeline (processing & analysis)
  • IBM — Internal search and ML pipelines
  • Opendoor — Manage PySpark pipelines
  • Lexis Nexis — Feature processing and lineage
  • Adobe — Prompt engineering research
  • WrenAI — async text-to-SQL workflows
  • British Cycling — Telemetry analysis
  • Oak Ridge & PNNL — Naturf project
  • ORNL
  • Federal Reserve Board
  • Joby Aviation — Flight data processing
  • Two
  • Transfix — Online featurization and prediction
  • Railofy — Orchestrate pandas code
  • Habitat Energy — Time-series feature engineering
  • KI-Insurance — Feature engineering
  • Ascena Retail — Feature engineering
  • NaroHQ
  • EquipmentShare
  • Everstream.ai
  • Flectere
  • F33.ai
  • Kora Money
  • Capitec Bank
  • Best Egg
  • RTV Euro AGD
  • Wealth.com
  • wren.ai

🤝 Code Contributors

Contributors

🙌 Special Mentions & 🦟 Bug Hunters

Thanks to our awesome community and their active involvement in the Apache Hamilton library.

Nils Olsson, Michał Siedlaczek, Alaa Abedrabbo, Shreya Datar, Baldo Faieta, Anwar Brini, Gourav Kumar, Amos Aikman, Ankush Kundaliya, David Weselowski, Peter Robinson, Seth Stokes, Louis Maddox, Stephen Bias, Anup Joseph, Jan Hurst, Flavia Santos, Nicolas Huray, Manabu Niseki, Kyle Pounder, Alex Bustos, Andy Day, Alexander Cai, Nils Müller-Wendt, Paul Larsen, Kemal Eren, Jernej Frank, Noah Ridge

🎓 Citations

We’d appreciate citing Apache Hamilton by referencing one of the following:

@inproceedings{DBLP:conf/vldb/KrawczykI22,
  title     = {Hamilton: a modular open source declarative paradigm for high level
               modeling of dataflows},
  author    = {Stefan Krawczyk and Elijah ben Izzy},
  editor    = {Satyanarayana R. Valluri and Mohamed Za{\"{\i}}t},
  booktitle = {1st International Workshop on Composable Data Management Systems,
               CDMS@VLDB 2022, Sydney, Australia, September 9, 2022},
  year      = {2022},
  url       = {https://cdmsworkshop.github.io/2022/Proceedings/ShortPapers/Paper6\_StefanKrawczyk.pdf},
  timestamp = {Wed, 19 Oct 2022 16:20:48 +0200},
  biburl    = {https://dblp.org/rec/conf/vldb/KrawczykI22.bib},
  bibsource = {dblp computer science bibliography, https://dblp.org}
}
@inproceedings{CEURWS:conf/vldb/KrawczykIQ22,
  title     = {Hamilton: enabling software engineering best practices for data transformations via generalized dataflow graphs},
  author    = {Stefan Krawczyk and Elijah ben Izzy and Danielle Quinn},
  editor    = {Cinzia Cappiello and Sandra Geisler and Maria-Esther Vidal},
  booktitle = {1st International Workshop on Data Ecosystems co-located with 48th International Conference on Very Large Databases (VLDB 2022)},
  pages     = {41--50},
  url       = {https://ceur-ws.org/Vol-3306/paper5.pdf},
  year      = {2022}
}

📚 Libraries built on / for Apache Hamilton

  • Hypster - hyperparameter management
  • DSP Decision Engine - decision trees
  • NaturF - library for data transformation for weather forecasting
  • WrenAI - RAG
  • FlowerPower - Scheduler for Apache Hamilton

评论

登录 后发表评论
暂无评论
GitRead 中文社区
深度解读 · 趋势洞察 · 价值精选

关于

关于我们联系我们编辑准则收录标准赞赏人员

发现

技术趋势新手训练营资源精选实战指南精选专题热门话题GitHub 文档

条款

隐私政策服务条款网站地图
26.9万收录项目
5万中文话题
155精选专题
发现技术价值,连接开源智慧
© 2026 GitRead · GitHub 中文社区 本站与 GitHub, Inc. 无隶属关系;GitHub 是 GitHub, Inc. 的商标。