Dagster comparison is not correct
I maintainer di solito rispondono entro 2 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Documentazione
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- pandas, python
- Ambito
- data-engineering, documentation
Direzione di ricerca
Inizia dalla pagina di confronto di Dagster collegata nell’issue, in particolare dalle sezioni Dataflow Definition e Dataflow Execution e dalla tabella di confronto principale. Verifica gli esempi e le affermazioni rispetto ai riferimenti di Dagster a IOManager, Declarative Materialization, Pipes, data versioning e dagster-dbt; il lavoro è completato quando il confronto è accurato, utilizza funzionalità analoghe e copre le omissioni elencate.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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!
- Lingua principale
- Jupyter Notebook
- Stelle
- 2.6k
- Fork
- 218
- Merge medio
- 2g 13h
- PR unite (30g)
- 18
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di apache/hamilton
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 2 giorni
-
Engine crashes when client sends nan or inf float to UIForse di nuovo libera @Exudev l’ha presa 233 giorni fa e non c’è nessuna pull request aperta. Apertabug SDK
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
apache/hamilton#1458 · 5 commenti ·
I maintainer di solito rispondono entro 2 giorni
-
More detailed type annotations in graph visualizationsForse di nuovo libera @Nishant-Manocha l’ha presa 368 giorni fa e non c’è nessuna pull request aperta. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
apache/hamilton#1383 · 4 commenti ·
I maintainer di solito rispondono entro 2 giorni
-
Documentation: add explainer for FastAPIForse di nuovo libera @Aditya-Deshwal23 l’ha presa 187 giorni fa e non c’è nessuna pull request aperta. Apertadocumentation
Difficoltà 2/5 1-2 giorni Idoneità per principianti 65/100
apache/hamilton#1304 · 5 commenti ·
I maintainer di solito rispondono entro 2 giorni
-
Link back to github from reference API docsForse già presa @naikvaib l’ha presa 24 giorni fa. Apertadocumentation good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
apache/hamilton#572 · 3 commenti ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di apache/hamilton
Issue simili
-
area/plugin good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
kestra-io/plugin-soda#137 ·
-
Add: Tooncast brazil feedApertacheck:passed feeds:add
Difficoltà 2/5 Meno di un'ora Idoneità per principianti 62/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
neurostuff/NiMARE#1181 ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug] build_catalog_relation raises 'Macro' object has no attribute 'config' in run-operation (breaks Elementary edr report on dbt-athena 1.11.x)Forse già presa @Minhhnh l’ha presa oggi. Apertatriage:product
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
dbt-labs/dbt-adapters#2222 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno