macdoor commented on PR #18690:
URL: 
https://github.com/apache/dolphinscheduler/pull/18690#issuecomment-6093932176

   SQL Gateway and the existing Flink SQL path are different runtimes, so this 
should stay a separate task type.
   
   `FlinkTask` extends `AbstractYarnTask`. Its SQL mode always shells out to 
`${FLINK_HOME}/bin/sql-client.sh` on the worker, and cancel/app-id tracking 
assume a local process. `FLINK_SGW` talks to a remote Gateway over JDBC 
(`flink-sql-jdbc-driver`), needs no local Flink client, and cancels via 
`statement.cancel()`. Folding that into `programType=SQL` or a new `deployMode` 
means overriding `handle()`/`cancel()` and mixing two parameter models (YARN 
queue/slots/inline script vs JDBC URL, resource-center files, statement 
separator). The current `sql-client.sh` path has to stay; this cannot replace 
it.
   
   Same split already exists for `DINKY` (external control plane) and 
`FLINK_STREAM` (different lifecycle). `task-flink` also has no Flink 
dependencies today. Adding the JDBC driver there would be shaded into 
`task-flink-stream`, which depends on `task-flink` and shades it with no filter.
   
   Happy to colocate both SPI factories in `dolphinscheduler-task-flink` if the 
concern is a new Maven module. The task type should remain `FLINK_SGW`: 
`getName()` is persisted on the task definition, and the two execution paths 
should not share one `handle()`.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to