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