Hi Jieguang,

Generating workflows from `yaml` template is a better way for users who
need to create tons of workflows at a time.
Furthermore, if users have little knowledge in python, `yaml` helps them
get hands dirty more easily if they want to try `workflow as code`.
BTW, if users want to migrate from other big data orchestration tools such
as Airflow, Azkaban, Oozie, etc. to DS, converting workflows from previous
systems into `yaml` files helps ease the pain.

Above all, I'm +1 to this and looking forward to a detailed design.

Thanks.

*Best Regards,*

*Chufeng (Eric) Gao*



Jieguang Zhou <[email protected]> 于2022年7月29日周五 15:20写道:

> Hi community,
>
> I think we can use the pydolphinscheduler to dynamically generate
> workflows from the configuration file.
>
> Dynamically generate workflows from YAML configuration files, aka
> workflows-as-code.
>
> Now we can use python-dolphinscheduler to build workflow easily.
> Workflows-as-code would be easier to use if we supported configuration file
> definition workflows. It will make the workflow clearer, shareable, and
> reviewable.
>
> Then we can upload our project as a git repository. This can help us do
> richer operations, such as CICD, etc
>
> We can create a workload by defining the following fields, all the field
> definitions are derived from [PydolphinScheduler](
> https://dolphinscheduler.apache.org/python/concept.html#).
>
> A YAML file defines a workflow :
>
> ```yaml
> # Define the process
> Process:
>   #process(workflow) name
>   name: prepare_datas
>
>   # Parameters for process creation
>   param:
>       project: /data/project
>
>   # Whether to run the workflow after the creation is complete
>   run: True
>
> # Define the tasks under the process
> Tasks:
>   -
>     # task type: Shell, python, SubProcess, Spark, etc
>     TaskType: Shell
>
>     # Upstream Task List
>     dependencies: [xxxx]
>
>     # Parameters for task creation
>     params:
>       name: task1
>       other parameters: ...
>
>   -
>     TaskType: Python
>     params:
>       name: task2
>   - ...
>   - ...
> ```
>
> I already add a GitHub Issue for my proposal, which you could see in
> https://github.com/apache/dolphinscheduler/issues/10995
>
> Looking forward any feedback for this thread.

Reply via email to