Hi Paul,

Thanks for the update.

>'SHOW QUERIES' lists all jobs in the cluster, no limit on APIs (DataStream or 
>SQL) or
clients (SQL client or CLI).

Is DataStream job a QUERY? I think not.
For a QUERY, the most important concept is the statement. But the
result does not contain this info.
If we need to contain all jobs in the cluster, I think the name should
be JOB or PIPELINE.
I learn to SHOW PIPELINES and STOP PIPELINE [IF RUNNING] id.

> SHOW SAVEPOINTS
To list the savepoint for a specific job, we need to specify a
specific pipeline,
the syntax should be SHOW SAVEPOINTS FOR PIPELINE id

Best,
Godfrey

Paul Lam <paullin3...@gmail.com> 于2022年5月20日周五 11:25写道:
>
> Hi Jark,
>
> WRT “DROP QUERY”, I agree that it’s not very intuitive, and that’s
> part of the reason why I proposed “STOP/CANCEL QUERY” at the
> beginning. The downside of it is that it’s not ANSI-SQL compatible.
>
> Another question is, what should be the syntax for ungracefully
> canceling a query? As ShengKai pointed out in a offline discussion,
> “STOP QUERY” and “CANCEL QUERY” might confuse SQL users.
> Flink CLI has both stop and cancel, mostly due to historical problems.
>
> WRT “SHOW SAVEPOINT”, I agree it’s a missing part. My concern is
> that savepoints are owned by users and beyond the lifecycle of a Flink
> cluster. For example, a user might take a savepoint at a custom path
> that’s different than the default savepoint path, I think jobmanager would
> not remember that, not to mention the jobmanager may be a fresh new
> one after a cluster restart. Thus if we support “SHOW SAVEPOINT”, it's
> probably a best-effort one.
>
> WRT savepoint syntax, I’m thinking of the semantic of the savepoint.
> Savepoints are alias for nested transactions in DB area[1], and there’s
> correspondingly global transactions. If we consider Flink jobs as
> global transactions and Flink checkpoints as nested transactions,
> then the savepoint semantics are close, thus I think savepoint syntax
> in SQL-standard could be considered. But again, I’m don’t have very
> strong preference.
>
> Ping @Timo to get more inputs.
>
> [1] https://en.wikipedia.org/wiki/Nested_transaction 
> <https://en.wikipedia.org/wiki/Nested_transaction>
>
> Best,
> Paul Lam
>
> > 2022年5月18日 17:48,Jark Wu <imj...@gmail.com> 写道:
> >
> > Hi Paul,
> >
> > 1) SHOW QUERIES
> > +1 to add finished time, but it would be better to call it "end_time" to
> > keep aligned with names in Web UI.
> >
> > 2) DROP QUERY
> > I think we shouldn't throw exceptions for batch jobs, otherwise, how to
> > stop batch queries?
> > At present, I don't think "DROP" is a suitable keyword for this statement.
> > From the perspective of users, "DROP" sounds like the query should be
> > removed from the
> > list of "SHOW QUERIES". However, it doesn't. Maybe "STOP QUERY" is more
> > suitable and
> > compliant with commands of Flink CLI.
> >
> > 3) SHOW SAVEPOINTS
> > I think this statement is needed, otherwise, savepoints are lost after the
> > SAVEPOINT
> > command is executed. Savepoints can be retrieved from REST API
> > "/jobs/:jobid/checkpoints"
> > with filtering "checkpoint_type"="savepoint". It's also worth considering
> > providing "SHOW CHECKPOINTS"
> > to list all checkpoints.
> >
> > 4) SAVEPOINT & RELEASE SAVEPOINT
> > I'm a little concerned with the SAVEPOINT and RELEASE SAVEPOINT statements
> > now.
> > In the vendors, the parameters of SAVEPOINT and RELEASE SAVEPOINT are both
> > the same savepoint id.
> > However, in our syntax, the first one is query id, and the second one is
> > savepoint path, which is confusing and
> > not consistent. When I came across SHOW SAVEPOINT, I thought maybe they
> > should be in the same syntax set.
> > For example, CREATE SAVEPOINT FOR [QUERY] <query_id> & DROP SAVEPOINT
> > <sp_path>.
> > That means we don't follow the majority of vendors in SAVEPOINT commands. I
> > would say the purpose is different in Flink.
> > What other's opinion on this?
> >
> > Best,
> > Jark
> >
> > [1]:
> > https://nightlies.apache.org/flink/flink-docs-master/docs/ops/rest_api/#jobs-jobid-checkpoints
> >
> >
> > On Wed, 18 May 2022 at 14:43, Paul Lam <paullin3...@gmail.com> wrote:
> >
> >> Hi Godfrey,
> >>
> >> Thanks a lot for your inputs!
> >>
> >> 'SHOW QUERIES' lists all jobs in the cluster, no limit on APIs (DataStream
> >> or SQL) or
> >> clients (SQL client or CLI). Under the hook, it’s based on
> >> ClusterClient#listJobs, the
> >> same with Flink CLI. I think it’s okay to have non-SQL jobs listed in SQL
> >> client, because
> >> these jobs can be managed via SQL client too.
> >>
> >> WRT finished time, I think you’re right. Adding it to the FLIP. But I’m a
> >> bit afraid that the
> >> rows would be too long.
> >>
> >> WRT ‘DROP QUERY’,
> >>> What's the behavior for batch jobs and the non-running jobs?
> >>
> >>
> >> In general, the behavior would be aligned with Flink CLI. Triggering a
> >> savepoint for
> >> a non-running job would cause errors, and the error message would be
> >> printed to
> >> the SQL client. Triggering a savepoint for batch(unbounded) jobs in
> >> streaming
> >> execution mode would be the same with streaming jobs. However, for batch
> >> jobs in
> >> batch execution mode, I think there would be an error, because batch
> >> execution
> >> doesn’t support checkpoints currently (please correct me if I’m wrong).
> >>
> >> WRT ’SHOW SAVEPOINTS’, I’ve thought about it, but Flink clusterClient/
> >> jobClient doesn’t have such a functionality at the moment, neither do
> >> Flink CLI.
> >> Maybe we could make it a follow-up FLIP, which includes the modifications
> >> to
> >> clusterClient/jobClient and Flink CLI. WDYT?
> >>
> >> Best,
> >> Paul Lam
> >>
> >>> 2022年5月17日 20:34,godfrey he <godfre...@gmail.com> 写道:
> >>>
> >>> Godfrey
> >>
> >>
>

Reply via email to