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
>> 
>> 

Reply via email to