Dagster-pipelines hebben duidelijk eigenaarschap nodig
Het echte pipelineprobleem is nooit de vorm van de DAG. Het is dat een job om vier uur 's nachts faalde en niemand wist van wie hij was.
Begin bij het asset, niet bij het schema
Dagsters assetmodel verdient zichzelf terug wanneer je definieert wat je produceert en de scheduling daaruit laat volgen. Bron, output en de aannames ertussen komen in één definitie terecht, in plaats van verdeeld over een DAG-bestand en een cron-regel die niemand zich herinnert te hebben geschreven.
Een alert hoort te zeggen wat je moet doen
Run 4821 faalde is geen alert, het is een melding. De bruikbare versie noemt het asset, de bovenliggende dependency die het meest waarschijnlijk de oorzaak is, en het eerste dat je controleert. Het meeste daarvan kan één keer in de assetmetadata staan, in plaats van elke keer met de hand in Slack getypt te worden.
Elk asset krijgt een naam van een persoon
Eigenaren in de definitie, niet in een spreadsheet die iemand tot afgelopen maart bijhield. Het klinkt bureaucratisch tot het eerste alert zichzelf routeert naar degene die het ding wijzigde. Dat doet meer voor betrouwbaarheid dan weer een dashboard vol rode vakjes, vooral omdat dashboards niemand wakker maken.
import dagster as dg
@dg.asset(
deps=["orders_bronze"],
owners=["team:data-platform", "jeremias@example.com"],
description="One row per order, deduplicated, amounts in EUR.",
metadata={
"on_failure": "Check that orders_bronze landed today before rerunning.",
"consumers": "finance dashboard, churn model",
},
)
def orders_silver() -> None:
...
Maak lokaal draaien goedkoop
Als een developer het stuk dat hij raakte tegen gesamplede data kan materialiseren en binnen een paar minuten een resultaat ziet, doet hij dat vóór het openen van de PR. Duurt het een uur en een cluster, dan niet. Bijna elk incident dat ik heb zien gebeuren begon bij een wijziging die niemand makkelijk kon uitproberen.
Verwijder de schedules die niemand leest
Elke orchestrator die ik heb overgenomen had jobs draaien die niemand kon uitleggen. Ze kosten geld, ze produceren alerts die mensen leren negeren, en ze maken de graaf onleesbaar. Zoek elk kwartaal op wat niets consumeert en zet het uit. Binnen twee weken klaagt er iemand, en zo kom je erachter dat het ertoe deed.