This demo project showcases three different approaches to modeling ETL operations as Dagster assets, each with different trade-offs for visibility, control, and simplicity.
# Activate virtual environment
source .venv/bin/activate| # --------------------------------------------------------------------------- | |
| # 1. Upstream asset — plain @asset | |
| # --------------------------------------------------------------------------- | |
| @dg.asset( | |
| group_name="pipeline", | |
| kinds={"python"}, | |
| tags={"domain": "orders"}, | |
| ) | |
| def raw_orders(context: dg.OpExecutionContext) -> list[dict]: |
| #!/usr/bin/env python3 | |
| #!/usr/bin/env python3 | |
| # /// script | |
| # dependencies = [ | |
| # "requests<3", | |
| # ] | |
| # /// | |
| import argparse | |
| import sys | |
| import requests |
Creating a new persistent deployment requires coordinating two systems: the Dagster+ API and your Kubernetes agent configuration.
The deployment must exist in Dagster+ as a logical entity. This is done via the GraphQL API:
import httpxThis document explains how to limit concurrent executions of individual assets using Dagster's pool-based concurrency system.
By default, Dagster allows unlimited concurrent executions of the same asset across multiple runs. This can cause issues when:
| #!/usr/bin/env python3 | |
| # /// script | |
| # requires-python = ">=3.10" | |
| # dependencies = [ | |
| # "requests", | |
| # ] | |
| # /// | |
| """ | |
| Query Dagster's GraphQL API to get monthly credits (ops executed + asset materializations). |
This document outlines a detailed plan to add support for Sigma's new Data Models API to the dagster-sigma library. Data Models are replacing the deprecated datasets (end-of-life: June 2, 2026) and provide enhanced semantic layer capabilities including metrics, relationships, column/row-level security, and more.
Timeline: ~5-8 days development + testing Priority: Medium-High (18 month deprecation timeline for datasets) Complexity: Moderate
| mutation { | |
| createSecret( | |
| secretName: "MY_API_KEY" | |
| secretValue: "abc123" | |
| scopes: { fullDeploymentScope: true } | |
| locationNames: ["prod"] | |
| ) { | |
| __typename | |
| ... on Error { | |
| message |
This document provides comprehensive instructions for GitHub Copilot to replicate the Dagster demo generation workflow implemented in this repository.
The Dagster Demo Generator automates the creation of demonstration Dagster projects using a multi-tiered workflow:
/create-dagster-demo slash command (.claude/commands/create-dagster-demo-2.md)| from airflow import DAG | |
| from airflow.operators.python import PythonOperator | |
| from airflow.utils.dates import days_ago | |
| from airflow.settings import Session | |
| from airflow.models import DagRun | |
| from datetime import timedelta | |
| import pandas as pd | |
| import numpy as np | |
| # Constants for flexibility |