al_whatmough
08/24/2020, 2:40 AMadam_roderick
08/24/2020, 2:52 PMdouwe_maan
08/24/2020, 8:45 PMmeltano.yml (using meltano schedule or the UI itself), and that you provide those schedule names to meltano elt as the --job_id. Storing logs, last run date, etc. is all the responsibility of meltano elt itself, and it doesn't matter what orchestrator is used to run the command.
This means that you can get Meltano and the UI to work with any orchestrator, as long as you can configure it to iterate over the output of meltano schedule list --format=json and create a scheduled job of some kind for each entry, with shell command meltano elt {schedule["elt_args"]}.
That's exactly what the default Airflow DAG generator for Meltano does, which is automatically added to your project at orchestrate/dags/meltano.py when you run `meltano add orchestrator airflow`: https://gitlab.com/meltano/files-airflow/-/blob/master/bundle/orchestrate/dags/meltano.py
The rest of Meltano's Airflow-specific code (https://gitlab.com/meltano/meltano/-/blob/master/src/meltano/core/plugin/airflow.py and https://gitlab.com/meltano/meltano/blob/master/src/meltano/core/bundle/discovery.yml#L876-890) only serves to automatically build the airflow.cfg config file and tell Airflow to look for DAGs in the project's orchestrate/dags directory.douwe_maan
08/24/2020, 8:47 PMal_whatmough
08/24/2020, 10:16 PMadam_roderick
08/24/2020, 10:31 PMal_whatmough
08/24/2020, 10:34 PMdouwe_maan
08/24/2020, 10:51 PMmeltano add orchestrator prefect and use a file bundle to automatically add the appropriate file(s) to the project that would register a Prefect workflow for each schedule. I think the user would still need to configure Prefect to connect with the API or Cloud, and they'd need to explicitly run that file to register the workflows, which we'd document. Before we start documenting, though, let's see how much of this we can automate by using Meltano's configuration, file bundle, and meltano invoke bits 🙂