Hi Jark, Thanks a lot!
I’m thinking of the 2nd approach. With this approach, the query lifecycle statements (show/stop/savepoint etc) are basically equivalent alternatives to Flink CLI from the user point of view. BTW, the completed jobs might be missing in `SHOW QUERIES`, because for application/per-clusters modes, the clusters would stop when the job terminates. WDYT? Best, Paul Lam > 2022年4月11日 14:17,Jark Wu <imj...@gmail.com> 写道: > > Hi Paul, I grant the permission to you. > > Regarding the "SHOW QUERIES", how will you bookkeep and persist the running > and complete queries? > Or will you retrieve the queries information from the cluster every time > when you receive the command? > > > Best, > Jark > > > On Wed, 6 Apr 2022 at 11:23, Paul Lam <paullin3...@gmail.com> wrote: > >> Hi Timo, >> >> Thanks for you reply! >> >>> It would be great to further investigate which other commands are >> required that would be usually be exeuted via CLI commands. I would like to >> avoid a large amount of FLIPs each adding a special job lifecycle command. >> >> Okay. I listed only the commands about jobs/queries that’s required for >> savepoints for simplicity. I would come up with a complete set of commands >> for the full lifecycle of jobs. >> >>> I guess job lifecycle commands don't make much sense in Table API? Or >> are you planning to support those also TableEnvironment.executeSql and >> integrate them into SQL parser? >> >> Yes, I’m thinking of adding job lifecycle management in SQL Client. SQL >> client could execute queries via TableEnvironment.executeSql and bookkeep >> the IDs, which is similar to ResultSotre in LocalExecutor. >> >> BTW, may I ask for the permission on Confluence to create a FLIP? >> >> Best, >> Paul Lam >> >>> 2022年4月4日 15:36,Timo Walther <twal...@apache.org> 写道: >>> >>> Hi Paul, >>> >>> thanks for proposing this. I think in general it makes sense to have >> those commands in SQL Client. >>> >>> However, this will be a big shift because we start adding job lifecycle >> SQL syntax. It would be great to further investigate which other commands >> are required that would be usually be exeuted via CLI commands. I would >> like to avoid a large amount of FLIPs each adding a special job lifecycle >> command >>> >>> I guess job lifecycle commands don't make much sense in Table API? Or >> are you planning to support those also TableEnvironment.executeSql and >> integrate them into SQL parser? >>> >>> Thanks, >>> Timo >>> >>> >>> Am 01.04.22 um 12:28 schrieb Paul Lam: >>>> Hi Martjin, >>>> >>>>> For any extension on the SQL syntax, there should be a FLIP. I would >> like >>>>> to understand how this works for both bounded and unbounded jobs, how >> this >>>>> works with the SQL upgrade story. Could you create one? >>>> Sure. I’m preparing one. Please give me the permission if possible. >>>> >>>> My Confluence user name is `paulin3280`, and the full name is `Paul >> Lam`. >>>> >>>>> I'm also copying in @Timo Walther <twal...@apache.org> and @Jark Wu >>>>> <imj...@gmail.com> for their opinion on this. >>>> Looking forward to your opinions @Timo @Jark :) >>>> >>>> Best, >>>> Paul Lam >>>> >>>>> 2022年4月1日 18:10,Martijn Visser <martijnvis...@apache.org> 写道: >>>>> >>>>> Hi Paul, >>>>> >>>>> For any extension on the SQL syntax, there should be a FLIP. I would >> like >>>>> to understand how this works for both bounded and unbounded jobs, how >> this >>>>> works with the SQL upgrade story. Could you create one? >>>>> >>>>> I'm also copying in @Timo Walther <twal...@apache.org> and @Jark Wu >>>>> <imj...@gmail.com> for their opinion on this. >>>>> >>>>> Best regards, >>>>> >>>>> Martijn >>>>> >>>>> On Fri, 1 Apr 2022 at 12:01, Paul Lam <paullin3...@gmail.com> wrote: >>>>> >>>>>> Hi Martijn, >>>>>> >>>>>> Thanks a lot for your input. >>>>>> >>>>>>> Have you already thought on how you would implement this in Flink? >>>>>> Yes, I roughly thought about the implementation: >>>>>> >>>>>> 1. Extending Executor to support job list via ClusterClient. >>>>>> 2. Extending Executor to support savepoint trigger/cancel/remove via >>>>>> JobClient. >>>>>> 3. Extending SQL parser to support the new statements via regex >>>>>> (AbstractRegexParseStrategy) or Calcite. >>>>>> >>>>>> IMHO, the implementation is not very complicated and barely touches >> the >>>>>> architecture of FLIP-91. >>>>>> (BTW, FLIP-91 might be a little bit outdated and doesn’t fully >> reflect >>>>>> the current status of Flink SQL client/gateway.) >>>>>> >>>>>> WDYT? >>>>>> >>>>>> Best, >>>>>> Paul Lam >>>>>> >>>>>>> 2022年4月1日 17:33,Martijn Visser <mart...@ververica.com> 写道: >>>>>>> >>>>>>> Hi Paul, >>>>>>> >>>>>>> Thanks for opening the discussion. I agree that there are >> opportunities >>>>>> in >>>>>>> this area to increase user value. >>>>>>> >>>>>>> I would say that the syntax should be part of a proposal in a FLIP, >>>>>> because >>>>>>> the implementation would actually be the complex part, not so much >> the >>>>>>> syntax :) Especially since this also touches on FLIP-91 [1] >>>>>>> >>>>>>> Have you already thought on how you would implement this in Flink? >>>>>>> >>>>>>> Best regards, >>>>>>> >>>>>>> Martijn Visser >>>>>>> https://twitter.com/MartijnVisser82 >>>>>>> https://github.com/MartijnVisser >>>>>>> >>>>>>> [1] >>>>>>> >>>>>> >> https://cwiki.apache.org/confluence/display/FLINK/FLIP-91%3A+Support+SQL+Client+Gateway >>>>>>> >>>>>>> On Fri, 1 Apr 2022 at 11:25, Paul Lam <paullin3...@gmail.com> wrote: >>>>>>> >>>>>>>> Hi team, >>>>>>>> >>>>>>>> Greetings from Apache Kyuubi(incubating) community. We’re >> integrating >>>>>>>> Flink as a SQL engine and aiming to make it production-ready. >>>>>>>> >>>>>>>> However, query/savepoint management is a crucial but missing part in >>>>>> Flink >>>>>>>> SQL, thus we reach out to discuss the SQL syntax with Flink >> community. >>>>>>>> >>>>>>>> We propose to introduce the following statements: >>>>>>>> >>>>>>>> SHOW QUERIES: shows the running queries in the current session, >> which >>>>>>>> mainly returns query(namely Flink job) IDs and SQL statements. >>>>>>>> TRIGGER SAVEPOINT <query_id>: triggers a savepoint for the specified >>>>>>>> query, which returns the stored path of the savepoint. >>>>>>>> SHOW SAVEPOINTS <query_id>: shows the savepoints for the specified >>>>>> query, >>>>>>>> which returns the stored paths of the savepoints. >>>>>>>> REMOVE SAVEPOINT <savepoint_path>: removes the specified savepoint. >>>>>>>> >>>>>>>> WRT to keywords, `TRIGGER` and `SAVEPOINT` are already reserved >> keywords >>>>>>>> in Flink SQL[1], so the only new keyword is `QUERIES`. >>>>>>>> >>>>>>>> If we reach a consensus on the syntax, we could either implement it >> in >>>>>>>> Kyuubi and contribute back to Flink, or directly implement it in >> Flink. >>>>>>>> >>>>>>>> Looking forward for your feedback ;) >>>>>>>> >>>>>>>> [1] >>>>>>>> >>>>>> >> https://nightlies.apache.org/flink/flink-docs-release-1.14/docs/dev/table/sql/overview/#reserved-keywords >>>>>>>> Best, >>>>>>>> Paul Lam >>>>>>>> >>>>>>>> >>>>>> >>>> >>> >> >>