Dagster comparison is not correct
维护者通常 2 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 35/100
- Issue 类型
- 文档
- 描述清晰度
- 基本清楚
- 活跃度
- 停滞
- 技术栈
- pandas, python
调研方向
从 issue 中链接的 Dagster 对比页面开始,重点查看 Dataflow Definition 和 Dataflow Execution 部分以及主要对比表。根据 Dagster 的 IOManager、Declarative Materialization、Pipes、data versioning 和 dagster-dbt 参考资料,检查示例和相关说法;当对比内容准确、使用了对应的类比功能,并涵盖列出的遗漏项时,即表示完成。
由索引模型根据 Issue 内容生成。
描述
Hi!
I was curious about Hamilton because I was looking for a lightweight DAG library.
Coming from Dagster, I got naturally interested in the Hamilton vs Dagster comparison and found this page in the docs: https://hamilton.dagworks.io/en/latest/code-comparisons/dagster/
I noticed it does not provide accurate information about Dagster and the code examples are not using some of Dagster's main features. More concrete:
- issues with the first example:
- It does not utilize the
IOManagerto decouple I/O from computations - It incorrectly states that asset descriptions have to be defined via metadata, which is not correct (they can be defined in native function docstrings or via the
@asset(description=...argument).
- It does not utilize the
- issues with the second example:
- it incorrectly states that the Dagster job can't be executed in a local Python process
- it incorrectly states that I/O and computations are coupled (duplicate)
- the comparison between loading environment variables at runtime and providing configuration time references like
dagster.EnvVardoes not make much sense. Dagster's configuration purposely enables deferring the setting of the exact configuration parameters (since Dagster runs can be executed remotely, e.g. in a Kubernetes pod, and the env var might not be available outside of the remote system). But nothing is preventing the user from setting the value withos.getenvdirectly if needed.
Minor (in the main comparison table):
- important and unique Dagster features such as Declarative Materialization and Pipes are not mentioned
- data versioning comparison is a bit strange: it's not very clear how does Hamilton automatically identify code versions (e.g. how does it distinguish between refactoring-like changes and changes in the actual business logic). Dagster's data versioning system enforces explicit code version management to avoid unwanted expensive materializations of the entire asset graph (see: declarative automation).
- important Dagster integrations such as dagster-dbt are not mentioned
Current behavior
The Dagster example is not using relevant Dagster features and provides inaccurate information.
Expected behavior
The comparison between Hamilton and Dagster should use analogous features in both frameworks to be fair. In particular, it should use the IOManager as it's one of the main selling points of Dagster:
import dagster as dg
import pandas as pd
@dg.asset
def topstory_ids() -> pd.DataFrame: ...
@dg.asset
def topstories(topstory_ids: pd.DataFrame): ...
Note that some of the popular IOManagers for Pandas and Polars also support loading a subset of the dataframe columns: @asset(metadata={"columns": ["title"]}).
It should also provide accurate information on other topics mentioned above.
Additional context
Technically, this is not a bug, but I couldn't find a better label for this issue.
I am willing to help with improving these docs if my help is considered welcome!
- 主要语言
- Jupyter Notebook
- 星标
- 2.6k
- 派生
- 221
- 平均合并
- 2 天 1 分钟
- 30 天内合并 PR
- 17
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
apache/hamilton 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 76/100
维护者通常 2 天内回复
-
Engine crashes when client sends nan or inf float to UI可能重新可做 @Exudev 于 234 天前认领,目前没有进行中的 PR。 未关闭bug SDK
难度 2/5 1-3 小时 新手友好度 65/100
apache/hamilton#1458 · 5 条评论 ·
维护者通常 2 天内回复
-
More detailed type annotations in graph visualizations可能重新可做 @Nishant-Manocha 于 369 天前认领,目前没有进行中的 PR。 未关闭
难度 2/5 1-3 小时 新手友好度 70/100
apache/hamilton#1383 · 4 条评论 ·
维护者通常 2 天内回复
-
Documentation: add explainer for FastAPI可能重新可做 @Aditya-Deshwal23 于 188 天前认领,目前没有进行中的 PR。 未关闭documentation
难度 2/5 1-2 天 新手友好度 65/100
apache/hamilton#1304 · 5 条评论 ·
维护者通常 2 天内回复
-
Link back to github from reference API docs可能已有人在做 @naikvaib 于 26 天前认领。 未关闭documentation good first issue
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 2 天内回复
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 72/100
PolicyEngine/policyengine-us#10262 ·
维护者通常 2 天内回复
-
bug P2: misleading query
难度 2/5 1-3 小时 新手友好度 62/100
jeffknupp/association#476 ·
-
[Data Issue]: US-TEX-ERCO production parser fails on new Power Storage Charging/Discharging keys未关闭
难度 2/5 1-3 小时 新手友好度 74/100
electricitymaps/electricitymaps-contrib#8898 ·
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 72/100
scylladb/scylla-cdc-source-connector#350 ·
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 62/100
ruuuberth/cli-logger-pss#38 ·
维护者通常 2 天内回复