Hi, Paul. I am just confused that how the client can retrieve the SQL statement from the cluster? The SQL statement has been translated to the jobgraph and submit to the cluster.
I think we will not only manage the query statement lifecyle. How about `SHOW JOBS` and it will list the Job ID, Job Name, Job Type(DQL/DML) and Status(runnning or failing) ? Best, Shengkai Paul Lam <paullin3...@gmail.com> 于2022年4月12日周二 11:28写道: > 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 > >>>>>>>> > >>>>>>>> > >>>>>> > >>>> > >>> > >> > >> > >