Skip to main content

`dagster-ext` is a Meltano utility extension.

Project description

Meltano Dagster Extention

PyPI version

This project is still a work in progress. Please create an issue if you find any bugs.

Features

  • Load all Meltano jobs as Dagster jobs.
  • Add all correspondig schedules to these jobs.
  • (todo) Load all DBT models as Dagster assets.
  • (todo) Load all Singer tap streams as Dagster assets.
  • (todo) Ops to perform all Meltano actions.
  • (todo) Extract Singer metrics from logs and store them using Dagster.

Installation

# Add the dagster-ext to your Meltano project
meltano add utility dagster

# Initialize your Dagster project
meltano invoke dagster:initialize

# Start Dagit
meltano invoke dagster:start

Commands

meltano invoke dagster:initialize

Setup a new Dagster project and automatically load jobs and assets from your Meltano project.

meltano invoke dagster:start

Start Dagit to serve your local Dagster deployment.

Code Examples

Below are some code examples how to use the dagster-meltano package.

Automatically load all jobs and schedules from your Meltano project.

from dagster import repository

from dagster_meltano import load_jobs_from_meltano_project

meltano_jobs = load_jobs_from_meltano_project("<path-to-meltano-root>")

@repository
def repository():
    return [meltano_jobs]

Install all Meltano plugins

from dagster import repository, job

from dagster_meltano import meltano_resource, meltano_install_op

@job(resource_defs={"meltano": meltano_resource})
def install_job():
    meltano_install_op()

@repository()
def repository():
    return [install_job]

Create an arbitrary Meltano run command

from dagster import repository, job

from dagster_meltano import meltano_resource, meltano_run_op

@job(resource_defs={"meltano": meltano_resource})
def meltano_run_job():
    tap_done = meltano_run_op("tap-1 target-1")()
    meltano_run_op("tap-2 target-2")(tap_done)

@repository()
def repository():
    return [meltano_run_job]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dagster_ext-0.1.0.tar.gz (11.4 kB view hashes)

Uploaded Source

Built Distribution

dagster_ext-0.1.0-py3-none-any.whl (14.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page