{"id":23492,"library":"dagster-embedded-elt","title":"dagster-embedded-elt","description":"A Dagster library for performing ETL/ELT tasks, providing integrations with tools like dbt, Sling, and Airbyte. This version (0.29.1) is part of the Dagster 1.13.1 release, compatible with Python 3.10-3.14. The library follows Dagster's release cadence with monthly minor releases and patch releases as needed.","status":"active","version":"0.29.1","language":"python","source_language":"en","source_url":"https://github.com/dagster-io/dagster/tree/master/python_modules/libraries/dagster-embedded-elt","tags":["dagster","etl","elt","dbt","sling","data-pipelines"],"install":[{"cmd":"pip install dagster-embedded-elt","lang":"bash","label":"Default install"},{"cmd":"pip install dagster-embedded-elt[sling]","lang":"bash","label":"Install with Sling support"},{"cmd":"pip install dagster-embedded-elt[dbt]","lang":"bash","label":"Install with dbt support"}],"dependencies":[{"reason":"Core Dagster framework required","package":"dagster","optional":false},{"reason":"Required for dbt integration","package":"dbt-core","optional":true},{"reason":"Required for Sling integration","package":"sling","optional":true}],"imports":[{"note":"dbt resource for running dbt projects within Dagster","symbol":"EmbeddedEltDbtResource","correct":"from dagster_embedded_elt.dbt import EmbeddedEltDbtResource"},{"note":"Sling resource for ELT tasks","symbol":"SlingResource","correct":"from dagster_embedded_elt.sling import SlingResource"},{"note":"Helper to create assets from Sling replication configs","symbol":"build_sling_asset","correct":"from dagster_embedded_elt.sling import build_sling_asset"}],"quickstart":{"code":"from dagster import AssetExecutionContext, Definitions\nfrom dagster_embedded_elt.sling import build_sling_asset, SlingResource\n\nreplication_config = {\n    \"source\": {\n        \"type\": \"postgres\",\n        \"connection_string\": \"postgresql://user:pass@localhost:5432/source\"\n    },\n    \"target\": {\n        \"type\": \"snowflake\",\n        \"connection_string\": \"snowflake://user:pass@account/db/schema?warehouse=wh&role=role\"\n    },\n    \"streams\": {\n        \"public.my_table\": {\n            \"object\": \"my_schema.my_table\",\n            \"mode\": \"full_refresh\"\n        }\n    }\n}\n\nsling_resource = SlingResource()\nmy_asset = build_sling_asset(\n    asset_key=\"my_table\",\n    source_connection_string=os.environ.get(\"SOURCE_CONN\", \"\"),\n    target_connection_string=os.environ.get(\"TARGET_CONN\", \"\"),\n    replication_config=replication_config\n)\n\ndefs = Definitions(assets=[my_asset], resources={\"sling\": sling_resource})","lang":"python","description":"Define a Sling-based ELT asset that copies data from Postgres to Snowflake."},"warnings":[{"fix":"Replace `from dagster_embedded_elt.sling.resources import SlingResource` with `from dagster_embedded_elt.sling import SlingResource`.","message":"In dagster-embedded-elt versions prior to 0.29.0, the Sling resource used `SlingResource` from `dagster_embedded_elt.sling.resources`. In 0.29.0, the import path changed to `dagster_embedded_elt.sling`. Update imports to avoid breaking changes.","severity":"breaking","affected_versions":"<0.29.0"},{"fix":"Use `replication_mode` instead of `mode` in your replication config streams.","message":"The `build_sling_asset` function's `mode` parameter in the replication config is deprecated in favor of `replication_mode`. The old `mode` key will be removed in a future version.","severity":"deprecated","affected_versions":">=0.28.0"},{"fix":"Always include `resources={\"sling\": sling_resource}` in your Definitions, and use the default resource key 'sling' or set `resource_key` in `build_sling_asset`.","message":"When using `build_sling_asset` with a `SlingResource`, ensure you pass the resource in the Definitions. The asset will fail at runtime if the resource key does not match.","severity":"gotcha","affected_versions":"all"},{"fix":"Replace `from dagster_embedded_elt.dbt import DbtCliResource` with `from dagster_embedded_elt.dbt import EmbeddedEltDbtResource`.","message":"The `EmbeddedEltDbtResource` has been renamed from `DbtCliResource` in dagster-embedded-elt <=0.27.0. Existing code must be updated.","severity":"breaking","affected_versions":"<=0.27.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Run `pip install dagster-embedded-elt`.","cause":"The package `dagster-embedded-elt` is not installed.","error":"ModuleNotFoundError: No module named 'dagster_embedded_elt'"},{"fix":"Use `from dagster_embedded_elt.sling import build_sling_asset`.","cause":"Incorrect import path; `build_sling_asset` is in `dagster_embedded_elt.sling`.","error":"ImportError: cannot import name 'build_sling_asset' from 'dagster_embedded_elt'"},{"fix":"Set environment variables (e.g., `SOURCE_CONN`, `TARGET_CONN`) or pass `connection_string` in the replication config under source/target.","cause":"The `SlingResource` requires a `connection_string` config. When using `build_sling_asset`, the source/target connections must be provided either via env vars or config.","error":"dagster._core.errors.DagsterInvalidConfigError: Missing required config entry at root"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}