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]