+1



------------------ ???????? ------------------
??????:                                                                         
                                               "dev"                            
                                                        
<[email protected]&gt;;
????????:&nbsp;2020??11??27??(??????) ????3:53
??????:&nbsp;"dev"<[email protected]&gt;;

????:&nbsp;Re: [DISCUSS] Process definithon json split design



There are two solutions for the query timing of job details:
- The Master is only responsible for DAG scheduling. When a job is
executed, it sends the job code to the Worker, and the Worker is
responsible for querying the job details and executing the job
- The Master executes DAG scheduling, queries the job details when a job is
executed, and then sends it to the Worker to execute the job

---------------------------------------------------------------------------------------------------------

????????????????????????????????????????

- 
Master??????DAG??????????????????????????????????????Worker??Worker??????????????????????????
- Master????DAG??????????????????????????????????????????????Worker????????

--------------------
DolphinScheduler(Incubator) Commtter
Hemin Wen&nbsp; ??????
[email protected]
--------------------


Hemin Wen <[email protected]&gt; ??2020??11??25?????? ????10:01??????

&gt; Hi!
&gt;
&gt; About json splitting of workflow definition, The following is the design
&gt; plan for splitting three tables.
&gt;
&gt; Everyone can discuss together.
&gt;
&gt;
&gt; 
--------------------------------------------------------------------------------------------------------------
&gt;
&gt; ## 1. Currently
&gt; The workflow definition of the current DS system includes task definition
&gt; data and task relationship data. In the design of the database, task data
&gt; and task relationship data are stored in the workflow as a string type
&gt; field (process_definition_json) Definition table (t_ds_process_definition).
&gt;
&gt; With the increase of workflow and tasks, the following problems will arise:
&gt;
&gt; -Task data, relational data and workflow data are coupled together, which
&gt; is not friendly to the scenario of single-task scheduling. The task must be
&gt; created in the workflow
&gt;
&gt; -The task cannot be reused because the task is created in the workflow
&gt;
&gt; -The maintenance cost is high. If you move the whole body and modify any
&gt; task, you need to update the data in the workflow as a whole, and it also
&gt; increases the log cost
&gt;
&gt; -When there are many tasks in the workflow, the efficiency of global
&gt; search and statistical analysis is low, such as querying which tasks use
&gt; which data source
&gt;
&gt; -Poor scalability, for example, the realization of blood relationship
&gt; function in the future will only lead to more and more bloated workflow
&gt; definitions
&gt;
&gt; -Tasks, relationships, and workflow boundaries are blurred. Condition
&gt; nodes and delay nodes are also regarded as a task, which is actually a
&gt; combination of relationships and conditions
&gt;
&gt; Based on the above pain points, we need to redefine the business
&gt; boundaries of tasks, relationships, and workflows, and redesign their data
&gt; structures based on this
&gt;
&gt; ## 2. Design Ideas
&gt;
&gt; ### 2.1 Workflow, relation, job
&gt;
&gt; First of all, we set aside the current implementation and clarify the
&gt; business boundaries of tasks (the subsequent description is changed to
&gt; jobs), relationships, and workflows, and how to decouple
&gt;
&gt; -Job: the task that the scheduling system really needs to execute, the job
&gt; only contains the data and resources needed to execute the job
&gt; -relation: the relationship between the job and the job and the execution
&gt; conditions, including the execution relationship (after A completes,
&gt; execute B) and execution conditions (after A completes and succeeds,
&gt; execute B; after A completes and fails, execute C; A completes 30 After
&gt; minutes, execute D)
&gt; -Workflow: the carrier of a set of relationships, the workflow only saves
&gt; the relationships between jobs (DAG is a display form of workflow, a way to
&gt; create relationships)
&gt;
&gt; Combined with the functions supported by the current DS, we can make a
&gt; classification
&gt;
&gt; -Job: Dependency check, sub-process, Shell, stored procedure, Sql, Spark,
&gt; Flink, MR, Python, Http, DataX, Sqoop
&gt; -Relationship: serial execution, parallel execution, aggregate execution,
&gt; conditional branch, delayed execution
&gt; -Workflow: the boundary of scheduling execution, including a set of
&gt; relationships
&gt;
&gt; #### 2.1.1 Further refinement
&gt;
&gt; The job definition data is not much different from the current job
&gt; definition data. Both are composed of public fields and custom fields. You
&gt; only need to remove the fields related to the relationship.
&gt;
&gt; The workflow definition data is not much different from the current
&gt; workflow definition data, just remove the json field.
&gt;
&gt; Relational data, we can abstract into two nodes and one path according to
&gt; classification. The node is the job, and the path includes the conditional
&gt; rules that need to be met from the pre-node to the post-node. The
&gt; conditional rules include: unconditional, judgment condition, and delay
&gt; condition.
&gt;
&gt; ### 2.2 Version Management
&gt;
&gt; We clarify the business boundaries. After decoupling, they become a
&gt; reference relationship. The workflow and the relationship are one-to-many,
&gt; and the relationship and the job are one-to-many. Not only is the
&gt; definition of data, we also need to consider instance data. Every time a
&gt; workflow is scheduled and executed, a workflow instance will be generated.
&gt; Jobs and workflows can be changed, and the workflow instance must support
&gt; viewing, rerun, recovery failure, etc. . This requires the introduction of
&gt; version management of the definition data. Every time workflow,
&gt; relationship, and job changes need to save old version data and generate
&gt; new version data.
&gt;
&gt; So the design idea here is:
&gt;
&gt; To define data, you need to add a version field
&gt;
&gt; The definition table needs to add the corresponding log table
&gt;
&gt; When creating definition data, double write to the definition table and
&gt; log table. When modifying the definition data, save the modified version to
&gt; the log table
&gt;
&gt; There is no need to save version information in the reference data of the
&gt; definition table (refer to the latest version), and the version information
&gt; at the time of execution is saved in the instance data
&gt;
&gt; ### 2.3 Coding Design
&gt;
&gt; This also involves the import and export of workflow and job definition
&gt; data. According to the previous community discussion, a coding scheme needs
&gt; to be introduced. Each piece of data in workflow, relationship, and job
&gt; will have a unique code. Related Issues: https://github
&gt; .com/apache/incubator-dolphinscheduler/issues/3820
&gt;
&gt; Resource: RESOURCE_xxx
&gt;
&gt; Task: TASK_xxx
&gt;
&gt; Relation: RELATION_xxx
&gt;
&gt; Workflow: PROCESS_xxx
&gt;
&gt; Project: PROJECT_xxx
&gt;
&gt; ## 3. Design plan
&gt;
&gt; ### 3.1 Table model design
&gt;
&gt; #### 3.1.1 Job definition table: t_ds_task_definithon
&gt;
&gt; | Column Name | Description |
&gt; | ----------------------- | -------------- |
&gt; | id | Self-incrementing ID |
&gt; | union_code | unique code |
&gt; | version | Version |
&gt; | name | Job name |
&gt; | description | description |
&gt; | task_type | Job type |
&gt; | task_params | Job custom parameters |
&gt; | run_flag | Run flag |
&gt; | task_priority | Job priority |
&gt; | worker_group | worker group |
&gt; | fail_retry_times | Number of failed retries |
&gt; | fail_retry_interval | Failure retry interval |
&gt; | timeout_flag | Timeout flag |
&gt; | timeout_notify_strategy | Timeout notification strategy |
&gt; | timeout_duration | Timeout duration |
&gt; | create_time | Creation time |
&gt; | update_time | Modification time |
&gt;
&gt; #### 3.1.2 Task relation table: t_ds_task_relation
&gt;
&gt; | Column Name | Description |
&gt; | ----------------------- | ------------------------- ------------- |
&gt; | id | Self-incrementing ID |
&gt; | union_code | unique code |
&gt; | version | Version |
&gt; | process_definition_code | Workflow coding |
&gt; | node_code | Node code (workflow code/job code) |
&gt; | post_node_code | Post node code (workflow code/job code) |
&gt; | condition_type | Condition type 0: None 1: Judgment condition 2: Delay
&gt; condition |
&gt; | condition_params | Condition parameters |
&gt; | create_time | Creation time |
&gt; | update_time | Modification time |
&gt;
&gt; #### 3.1.3 Workflow definition table: t_ds_process_definithon
&gt;
&gt; | Column Name | Description |
&gt; | ---- | ---- |
&gt; | id | Self-incrementing ID |
&gt; | union_code | unique code |
&gt; | version | Version |
&gt; | name | Workflow name |
&gt; | project_code | Project code |
&gt; | release_state | Release state |
&gt; | user_id | Owning user ID |
&gt; | description | description |
&gt; | global_params | Global parameters |
&gt; | flag | Whether the process is available: 0 is not available, 1 is
&gt; available |
&gt; | receivers | recipients |
&gt; | receivers_cc | CC |
&gt; | timeout | Timeout time |
&gt; | tenant_id | tenant ID |
&gt; | create_time | Creation time |
&gt; | update_time | Modification time |
&gt;
&gt; #### 3.1.4 Job definition log table: t_ds_task_definithon_log
&gt;
&gt; Add operation type (add, modify, delete), operator, and operation time
&gt; based on the job definition table
&gt;
&gt; #### 3.1.5 Job relation log table: t_ds_task_relation_log
&gt;
&gt; Add operation type (add, modify, delete), operator, and operation time
&gt; based on the job relationship table
&gt;
&gt; #### 3.1.6 Workflow definition log table: t_ds_process_definithon_log
&gt;
&gt; Add operation type (add, modify, delete), operator, and operation time
&gt; based on the workflow definition table
&gt;
&gt; ### 3.2 Frontend
&gt;
&gt; *The design here is just a personal idea, and the front-end help is needed
&gt; to design the interaction*
&gt;
&gt; Need to add job management related functions, including: job list, job
&gt; creation, update, delete, view details operations
&gt;
&gt; To create a workflow page, you need to split json into workflow definition
&gt; data and job relationship data to the back-end API layer to save/update
&gt;
&gt; Workflow page, when dragging task nodes, add reference job options
&gt;
&gt; The conditional branch nodes and delay nodes need to be resolved into the
&gt; conditional rule data in the relationship; conversely, the conditional rule
&gt; data returned by the backend needs to be displayed as the corresponding
&gt; node when querying the workflow
&gt;
&gt; ### 3.3 Master
&gt;
&gt; When the Master schedules the workflow, you need to modify <Build dag from
&gt; json&gt; to <Build dag from relational data&gt;. When executing a 
workflow, first
&gt; load the relational data in full (no job data is loaded here), generate
&gt; DAG, and traverse DAG execution , And then get the job data that needs to
&gt; be executed
&gt;
&gt; Other execution processes are consistent with existing processes
&gt;
&gt;
&gt; 
--------------------------------------------------------------------------------------------------------------
&gt;
&gt; ## 1.????
&gt;
&gt; 
????DS??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????process_definition_json??????????????????????????????t_ds_process_definition??????
&gt;
&gt; ????????????????????????????????????????
&gt;
&gt; - 
??????????????????????????????????????????????????????????????????????????????????????????
&gt;
&gt; - ????????????????????????????????????????
&gt;
&gt; - 
????????????????????????????????????????????????????????????????????????????????????????????
&gt;
&gt; - 
??????????????????????????????????????????????????????????????????????????????
&gt;
&gt; - ??????????????????????????????????????????????????????????????
&gt;
&gt; - 
??????????????????????????????????????????????????????????????????????????????????????
&gt;
&gt; 
????????????????????????????????????????????????????????????????????????????????????????
&gt;
&gt; ## 2.????????
&gt;
&gt; ### 2.1 ??????????????????
&gt;
&gt; 
????????????????????????????????????????????????????????????????????????????????????????????
&gt;
&gt; - ??????????????????????????????????????????????????????????????????
&gt; -
&gt; 
??????????????????????????????????????????????????????A????????????B??????????????A??????????????????B??A??????????????????C??A????30????????????D??
&gt; - 
??????????????????????????????????????????????????DAG????????????????????????????????????????????
&gt;
&gt; ????????DS??????????????????????????????
&gt;
&gt; - 
????????????????????????Shell????????????Sql??Spark??Flink??MR??Python??Http??DataX??Sqoop
&gt; - ??????????????????????????????????????????????????????
&gt; - ????????????????????????????????????
&gt;
&gt; #### 2.1.1 ??????????
&gt;
&gt; 
??????????????????????????????????????????????????????????????????????????????????????????????????????????????
&gt;
&gt; ??????????????????????????????????????????????????????json??????????????
&gt;
&gt;
&gt; 
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
&gt;
&gt; ### 2.2 ????????
&gt;
&gt;
&gt; 
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
&gt;
&gt; ??????????????????????
&gt;
&gt; ????????????????????????
&gt;
&gt; ??????????????????????????
&gt;
&gt; 
??????????????????????????????????????????????????????????????????????????????
&gt;
&gt; 
????????????????????????????????????????????????????????????????????????????????????
&gt;
&gt; ### 2.3 ????????
&gt;
&gt; 
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????Issue??
&gt; https://github.com/apache/incubator-dolphinscheduler/issues/3820
&gt;
&gt; ??????RESOURCE_xxx
&gt;
&gt; ??????TASK_xxx
&gt;
&gt; ??????RELATION_xxx
&gt;
&gt; ????????PROCESS_xxx
&gt;
&gt; ??????PROJECT_xxx
&gt;
&gt; ## 3.????????
&gt;
&gt; ### 3.1 ??????????
&gt;
&gt; #### 3.1.1 ????????????t_ds_task_definithon
&gt;
&gt; | 
????&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 | ????&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |
&gt; | ----------------------- | -------------- |
&gt; | 
id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 | ????ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |
&gt; | 
union_code&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 | ????????&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |
&gt; | 
version&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 | ????&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |
&gt; | 
name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 | ????????&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |
&gt; | 
description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 | ????&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |
&gt; | 
task_type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 | ????????&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |
&gt; | 
task_params&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 | ?????????????? |
&gt; | 
run_flag&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 | ????????&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |
&gt; | 
task_priority&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | 
??????????&nbsp;&nbsp;&nbsp;&nbsp; |
&gt; | 
worker_group&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
| worker????&nbsp;&nbsp;&nbsp;&nbsp; |
&gt; | fail_retry_times&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | 
????????????&nbsp;&nbsp; |
&gt; | fail_retry_interval&nbsp;&nbsp;&nbsp;&nbsp; | ????????????&nbsp;&nbsp; |
&gt; | 
timeout_flag&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
| ????????&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |
&gt; | timeout_notify_strategy | ????????????&nbsp;&nbsp; |
&gt; | timeout_duration&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | 
????????&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |
&gt; | 
create_time&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 | ????????&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |
&gt; | 
update_time&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 | ????????&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |
&gt;
&gt; #### 3.1.2 ????????????t_ds_task_relation
&gt;
&gt; | 
????&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 | 
????&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 |
&gt; | ----------------------- | -------------------------------------- |
&gt; | 
id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 | 
????ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 |
&gt; | 
union_code&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 | 
????????&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 |
&gt; | 
version&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 | 
????&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 |
&gt; | process_definition_code | 
??????????&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 |
&gt; | 
node_code&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 | ????????????????????/??????????&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |
&gt; | post_node_code&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | 
????????????????????????/??????????&nbsp;&nbsp;&nbsp; |
&gt; | condition_type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | 
???????? 0???? 1?????????? 2?????????? |
&gt; | condition_params&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | 
????????&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 |
&gt; | 
create_time&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 | 
????????&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 |
&gt; | 
update_time&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 | 
????????&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 |
&gt;
&gt; #### 3.1.3 ??????????????t_ds_process_definithon
&gt;
&gt; | ???? | ???? |
&gt; | ---- | ---- |
&gt; | id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | 
????ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 |
&gt; | union_code&nbsp;&nbsp;&nbsp; | 
????????&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 |
&gt; | version&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | 
????&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 |
&gt; | name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | 
??????????&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 |
&gt; | project_code&nbsp; | 
????????&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 |
&gt; | release_state | 
????????&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 |
&gt; | user_id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | 
????????ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 |
&gt; | description&nbsp;&nbsp; | 
????&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 |
&gt; | global_params | 
????????&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 |
&gt; | flag&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | 
??????????????0 ????????1 ???? |
&gt; | receivers&nbsp;&nbsp;&nbsp;&nbsp; | 
??????&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 |
&gt; | receivers_cc&nbsp; | 
??????&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 |
&gt; | timeout&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | 
????????&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 |
&gt; | tenant_id&nbsp;&nbsp;&nbsp;&nbsp; | 
????ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 |
&gt; | create_time&nbsp;&nbsp; | 
????????&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 |
&gt; | update_time&nbsp;&nbsp; | 
????????&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 |
&gt;
&gt; #### 3.1.4 ????????????????t_ds_task_definithon_log
&gt;
&gt; ??????????????????????????????????????????????????????????????????
&gt;
&gt; #### 3.1.5 ????????????????t_ds_task_relation_log
&gt;
&gt; ??????????????????????????????????????????????????????????????????
&gt;
&gt; #### 3.1.6 ??????????????????t_ds_process_definithon_log
&gt;
&gt; ????????????????????????????????????????????????????????????????????
&gt;
&gt; ### 3.2 ????
&gt;
&gt; *??????????????????????????????????????????????????*
&gt;
&gt; 
??????????????????????????????????????????????????????????????????????????????
&gt;
&gt; 
??????????????????????json??????????????????????????????????????????API??????/????
&gt;
&gt; ????????????????????????????????????????????
&gt;
&gt; 
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
&gt;
&gt; ### 3.3 Master
&gt;
&gt;
&gt; 
Master????????????????????<??json????dag&gt;??????<??????????????dag&gt;????????????????????????????????????????????????????????????????DAG??????DAG????????????????????????????????
&gt;
&gt; ??????????????????????????
&gt;
&gt; --------------------
&gt; DolphinScheduler(Incubator) Commtter
&gt; Hemin Wen&nbsp; ??????
&gt; [email protected]
&gt; --------------------
&gt;

Reply via email to