Hi ShengKai,

After I read FLIP-91[1], I want to add an init-file option. Its
functionality is the same as option '-i' of Flink SQL Client.

When I use Catalog(HiveCatalog), I need to execute `CREATE CATALOG` by this
option after SQL Gateway starts every time.

Shall we name this option `sql-gateway.session.init-file` and write it into
the FLIP-91?

Best regards,

LuNing Wang

[1]https://cwiki.apache.org/confluence/display/FLINK/FLIP-91

Martijn Visser <mart...@ververica.com> 于2022年4月26日周二 20:32写道:

> Hi Shengkai,
>
> Thanks for opening this discussion. I did a first brief pass over the FLIP
> and I have a couple of questions/remarks:
>
> * The FLIP is called "SQL Client Gateway", but isn't this a REST Gateway
> which would be used by Flink's SQL Client (or other applications)?
>
> * From a user perspective, I would have expected that we start with the
> REST endpoint before explaining how we would integrate this into Flink. Now
> it's quite hard to first understand what we want to offer to users and if
> that will be sufficient for a first version.
>
> * With Flink 1.15, we're introducing an OpenAPI specification [1]. Can we
> also do this straight away for the REST Gateway?
>
> * Should we introduce the REST Gateway as part of Flink's main repository?
> Wouldn't we be better off to maintain this in a separate repository under
> ASF? Ideally you would like to be able to support multiple Flink versions
> with one version of the REST Gateway I think?
>
> * There's no mention of Batch or Streaming in this concept. If I recall
> correctly, the current Flink SQL Gateway can only support Batch. How will
> we support Streaming? Will there be any requirement with JDBC, as there
> currently is?
>
> * I can imagine that if a user wants to use a REST Gateway, there's also a
> strong need to combine this with a Catalog. Do you think this should be
> part of this FLIP?
>
> Best regards,
>
> Martijn Visser
> https://twitter.com/MartijnVisser82
> https://github.com/MartijnVisser
>
> [1]
>
> https://nightlies.apache.org/flink/flink-docs-master/docs/ops/rest_api/#jobmanager
>
> On Sun, 24 Apr 2022 at 05:29, Shengkai Fang <fskm...@gmail.com> wrote:
>
> > Hi. Jiang.
> >
> > Thanks for your feedback!
> >
> > > Do the public interfaces of GatewayService refer to any service?
> >
> > We will only expose one GatewayService implementation. We will put the
> > interface into the common package and the developer who wants to
> implement
> > a new endpoint can just rely on the interface package rather than the
> > implementation.
> >
> > > What's the behavior of SQL Client Gateway working on Yarn or K8S? Does
> > the SQL Client Gateway support application or session mode on Yarn?
> >
> > I think we can support SQL Client Gateway to submit the jobs in
> > application/sesison mode.
> >
> > > Is there any event trigger in the operation state machine?
> >
> > Yes. I have already updated the content and add more details about the
> > state machine. During the revise, I found that I mix up the two concepts:
> > job submission and job execution. In fact, we only control the submission
> > mode at the gateway layer. Therefore, we don't need to mapping the
> > JobStatus here. If the user expects that the synchronization behavior is
> to
> > wait for the completion of the job execution before allowing the next
> > statement to be executed, then the Operation lifecycle should also
> contains
> > the job's execution, which means users should set `table.dml-sync`.
> >
> > > What's the return schema for the public interfaces of GatewayService?
> > Like getTable interface, what's the return value schema?
> >
> > The API of the GatewayService return the java objects and the endpoint
> can
> > organize the objects with expected schema. The return results is also
> list
> > the section ComponetAPI#GatewayService#API. The return type of the
> > GatewayService#getTable is `ContextResolvedTable`.
> >
> > > How does the user get the operation log?
> >
> > The OperationManager will register the LogAppender before the Operation
> > execution. The Log Appender will hijack the logger and also write the log
> > that related to the Operation to another files. When users wants to fetch
> > the Operation log, the GatewayService will read the content in the file
> and
> > return.
> >
> > Best,
> > Shengkai
> >
> >
> >
> >
> > Nicholas Jiang <nicholasji...@apache.org> 于2022年4月22日周五 16:21写道:
> >
> > > Hi Shengkai.
> > >
> > > Thanks for driving the proposal of SQL Client Gateway. I have some
> > > knowledge of Kyuubi and have some questions about the design:
> > >
> > > 1.Do the public interfaces of GatewayService refer to any service? If
> > > referring to HiveService, does GatewayService need interfaces like
> > > getQueryId etc.
> > >
> > > 2.What's the behavior of SQL Client Gateway working on Yarn or K8S?
> Does
> > > the SQL Client Gateway support application or session mode on Yarn?
> > >
> > > 3.Is there any event trigger in the operation state machine?
> > >
> > > 4.What's the return schema for the public interfaces of GatewayService?
> > > Like getTable interface, what's the return value schema?
> > >
> > > 5.How does the user get the operation log?
> > >
> > > Thanks,
> > > Nicholas Jiang
> > >
> > > On 2022/04/21 06:42:30 Shengkai Fang wrote:
> > > > Hi, Flink developers.
> > > >
> > > > I want to start a discussion about the FLIP-91: Support Flink SQL
> > > > Gateway[1]. Flink SQL Gateway is a service that allows users to
> submit
> > > and
> > > > manage their jobs in the online environment with the pluggable
> > endpoints.
> > > > The reason why we introduce the Gateway with pluggable endpoints is
> > that
> > > > many users have their preferences. For example, the HiveServer2 users
> > > > prefer to use the gateway with HiveServer2-style API, which has
> > numerous
> > > > tools. However, some filnk-native users may prefer to use the REST
> API.
> > > > Therefore, we propose the SQL Gateway with pluggable endpoint.
> > > >
> > > > In the FLIP, we also propose the REST endpoint, which has the similar
> > > > APIs compared to the gateway in the ververica/flink-sql-gateway[2].
> At
> > > the
> > > > last, we discuss how to use the SQL Client to submit the statement to
> > the
> > > > Gateway with the REST API.
> > > >
> > > > I am glad that you can give some feedback about FLIP-91.
> > > >
> > > > Best,
> > > > Shengkai
> > > >
> > > > [1]
> > > >
> > >
> >
> https://cwiki.apache.org/confluence/display/FLINK/FLIP-91%3A+Support+SQL+Client+Gateway
> > > > [2] https://github.com/ververica/flink-sql-gateway
> > > >
> > >
> >
>

Reply via email to