> * 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?
We would be better off maintaining this in a separate repository. It is important to support multiple Flink versions. Users can upgrade a large number of Flink jobs versions gradually in a Gateway service. LuNing Wang <wang4lun...@gmail.com> 于2022年4月27日周三 17:54写道: > 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 >> > > > >> > > >> > >> >