Thanks for the update, the FLIP looks good to me now. Best, Jark
On Tue, 5 Jul 2022 at 10:57, Mang Zhang <zhangma...@163.com> wrote: > Hi Jark, > Regarding the two issues of concern to yuxia, we did some offline > discussions and adjusted the implementation plan. > > >1) RTAS > RTAS is not supported in FLIP, so we will remove rtas from option name and do > option forward compatibility when it is supported in the future. > > >2) AtomicCatalog > > AtomicCatalog was introduced to solve the Catalog serialization problem, but > the function is to make CTAS support atomicity, in order to facilitate the > user to understand the function so named AtomicCatalog, which seems to bring > confusion to developers at present. > So we modified it to only do java Serializable support for Catalogs that > support CTAS atomicity and make sure it is serializable/deserializable, if it > is a user-defined Catalog that wants to support CTAS atomicity, then it must > also follow this requirement, we will do the check in Planner and update the > Catalog's Java Doc description. > > > What do you think? Looking forward to your feedback! > > -- > > Best regards, > > Mang Zhang > > > > At 2022-07-04 17:32:20, "Jark Wu" <imj...@gmail.com> wrote: > >Hi Mang, > > > >I'm not sure whether your response has addressed Yuxia's concern or not. > >Would be better to receive a confirmation from participants before starting > >the vote. > > > >Actually, I have the same feeling with Yuxia's reply. > > > >1) RTAS > >If it's hard to have a consistent behavior for RTAS between streaming mode > >and batch mode, > >it's very possible that the "table.ctas-rtas.atomicity-enabled" is not > >suitable and may need to > >change in the future. If the RTAS will not be supported in this version and > >the configuration > >may be not suitable in the future, how about removing the "rtas" from the > >config? We can > >still evolve the config to "table.ctas-rtas" if the semantics are the same, > >and still keeps backward compatibility. > > > >2) AtomicCatalog > >We won't add other methods to `AtomicCatalog` in the future, because new > >methods required for isolation doesn't > >belong to `AtomicCatalog`, maybe a new interface `IsolateCatalog`, > >`TransactionalCatalog` or `StagingCalalog`. > >So, I think Yuxia's concern is reasonable that it's confusing an atomic > >catalog is just a serializable catalog. > >How about just adding more javadocs on the `Catalog` interface to implement > >`Serializable` and make the catalog > >instances can be de/serialized using Java Serialization in case of > >supporting CTAS for the catalog. The planner > >should check the serialization for the catalog and throw an instruction for > >users on how to adapt the catalog to support > >CTAS. In this way, we don't need to introduce a new interface > >`AtomicCatalog` or else. > > > > > >Best, > >Jark > > > > > >On Thu, 30 Jun 2022 at 22:07, Mang Zhang <zhangma...@163.com> wrote: > > > >> Hi Martijn, > >> Thank you for your reply, these are two good questions. > >> >1. The FLIP mentions that if the user doesn't specify the WITH option part > >> >in the query of the sink table, it will be assumed that the user wants to > >> >create a managed table. What will happen if the user doesn't have Table > >> >Store configured/installed? Will we throw an error? > >> > >> If it is a Catalog that does not support managed table and no `connector` > >> is specified, then the corresponding TableSink cannot be generated, will > >> fail. > >> > >> If it is a Catalog that supports managed table and no `connector` is > >> specified, then it will fail because the table store related configuration > >> is not set and there is no table store related jar. > >> > >> > >> >2. Will there be support included for FLIP-190 (version upgrades)? > >> FLIP-190 mainly solves the problem of Streaming mode upgrade. FLIP-218 use > >> scenarios more in Batch mode. > >> CTAS atomicity implementation requires serialization support for Catalog > >> and hook, which currently cannot be serialized into json, so they cannot be > >> supported FLIP-190. > >> Non-atomic implementations are able to support FLIP-190. > >> > >> > >> > >> > >> > >> > >> > >> -- > >> > >> Best regards, > >> Mang Zhang > >> > >> > >> > >> > >> > >> At 2022-06-30 16:47:38, "Martijn Visser" <martijnvis...@apache.org> wrote: > >> >Hi Mang, > >> > > >> >I have two questions/remarks: > >> > > >> >1. The FLIP mentions that if the user doesn't specify the WITH option part > >> >in the query of the sink table, it will be assumed that the user wants to > >> >create a managed table. What will happen if the user doesn't have Table > >> >Store configured/installed? Will we throw an error? > >> > > >> >2. Will there be support included for FLIP-190 (version upgrades)? > >> > > >> >Best regards, > >> > > >> >Martijn > >> > > >> >Op wo 29 jun. 2022 om 05:18 schreef Mang Zhang <zhangma...@163.com>: > >> > > >> >> Hi everyone, > >> >> Thank you to all those who participated in the discussion, we have > >> >> discussed many rounds, the program has been gradually revised and > >> improved, > >> >> looking forward to further feedback, we will launch a vote in the next > >> day > >> >> or two. > >> >> > >> >> > >> >> > >> >> > >> >> > >> >> > >> >> > >> >> -- > >> >> > >> >> Best regards, > >> >> Mang Zhang > >> >> > >> >> > >> >> > >> >> > >> >> > >> >> At 2022-06-28 22:23:16, "Mang Zhang" <zhangma...@163.com> wrote: > >> >> >Hi Yuxia, > >> >> >Thank you very much for your reply. > >> >> > > >> >> > > >> >> >>1: Also, the mixture of ctas and rtas confuses me as the FLIP talks > >> >> nothing about rtas but refer it in the configuration suddenly. And if > >> >> we're not to implement rtas in this FLIP, it may be better not to refer > >> it > >> >> and the `rtas` shouldn't exposed to user as a configuration. > >> >> >Currently does not support RTAS because in the stream mode and batch > >> mode > >> >> semantic unification issues and specific business scenarios are not very > >> >> clear, the future we will support, if in support of rtas and then modify > >> >> the option name, then it will bring the cost of modifying the > >> configuration > >> >> to the user. > >> >> >>2: How will the CTASJobStatusHook be passed to StreamGraph as a hook? > >> >> Could you please explain about it. Some pseudocode will be much better > >> if > >> >> it's possible. I'm lost in this part. > >> >> > > >> >> > > >> >> > > >> >> > > >> >> >This part is too much of an implementation detail, and of course we had > >> >> to make some changes to achieve this. FLIP focuses on semantic > >> consistency > >> >> in stream and batch mode, and can provide optional atomicity support. > >> >> > > >> >> > > >> >> >>3: The name `AtomicCatalog` confuses me. Seems the backgroud for the > >> >> naming is to implement atomic for ctas, we propose a interface for > >> catalog > >> >> to support serializing, then we name it to `AtomicCatalog`. At least, > >> the > >> >> interface is for the atomic of ctas. But if we want to implement other > >> >> features like isolate which may also require serializable catalog in the > >> >> future, should we introduce a new interface naming `IsolateCatalog`? > >> Have > >> >> you ever considered other names like `SerializableCatalog`. As it's a > >> >> public interface, maybe we should be careful about the name. > >> >> >Regarding the definition of the Catalog name, we have also discussed > >> the > >> >> name `SerializableCatalog`, which is too specific and does not relate to > >> >> the atomic functionality we want to express. CTAS/RTAS want to support > >> >> atomicity, need Catalog to implement `AtomicCatalog`, so it's more > >> >> straightforward to understand. > >> >> > > >> >> > > >> >> >Hope this answers your question. > >> >> > > >> >> > > >> >> > > >> >> > > >> >> >-- > >> >> > > >> >> >Best regards, > >> >> >Mang Zhang > >> >> > > >> >> > > >> >> > > >> >> > > >> >> > > >> >> >At 2022-06-28 11:36:51, "yuxia" <luoyu...@alumni.sjtu.edu.cn> wrote: > >> >> >>Thanks for updating. The FLIP looks generall good to me. I have only > >> >> minor questions: > >> >> >> > >> >> >>1: Also, the mixture of ctas and rtas confuses me as the FLIP talks > >> >> nothing about rtas but refer it in the configuration suddenly. And if > >> >> we're not to implement rtas in this FLIP, it may be better not to refer > >> it > >> >> and the `rtas` shouldn't exposed to user as a configuration. > >> >> >> > >> >> >>2: How will the CTASJobStatusHook be passed to StreamGraph as a hook? > >> >> Could you please explain about it. Some pseudocode will be much better > >> if > >> >> it's possible. I'm lost in this part. > >> >> >> > >> >> >>3: The name `AtomicCatalog` confuses me. Seems the backgroud for the > >> >> naming is to implement atomic for ctas, we propose a interface for > >> catalog > >> >> to support serializing, then we name it to `AtomicCatalog`. At least, > >> the > >> >> interface is for the atomic of ctas. But if we want to implement other > >> >> features like isolate which may also require serializable catalog in the > >> >> future, should we introduce a new interface naming `IsolateCatalog`? > >> Have > >> >> you ever considered other names like `SerializableCatalog`. As it's a > >> >> public interface, maybe we should be careful about the name. > >> >> >> > >> >> >> > >> >> >>Best regards, > >> >> >>Yuxia > >> >> >> > >> >> >>----- 原始邮件 ----- > >> >> >>发件人: "Mang Zhang" <zhangma...@163.com> > >> >> >>收件人: "dev" <dev@flink.apache.org> > >> >> >>抄送: imj...@gmail.com > >> >> >>发送时间: 星期一, 2022年 6 月 27日 下午 5:43:50 > >> >> >>主题: Re:Re: Re:Re: Re: Re: Re: [DISCUSS] FLIP-218: Support SELECT > >> clause > >> >> in CREATE TABLE(CTAS) > >> >> >> > >> >> >>Hi Jark, > >> >> >>First of all, thank you for your very good advice! > >> >> >>The RTAS point you mentioned is a good one, and we should support it > >> as > >> >> well. > >> >> >>However, by investigating the semantics of RTAS and how RTAS is used > >> >> within the company, I found that: > >> >> >>1. The semantics of RTAS says that if the table exists, need to delete > >> >> the old data and use the new data. > >> >> >>This semantics is better implemented in Batch mode, for example, if > >> the > >> >> target table is a Hive table, old data file can be deleted directly. > >> >> >>But in Streaming mode, the target table is probably a Kafka topic, we > >> >> can't delete the data. > >> >> >>So the semantics in streaming and batch scenarios are not well > >> >> guaranteed to be consistent. > >> >> >>2. I checked the SQL for big data in the company in the last week and > >> >> found that RTAS was not used. > >> >> >>No users in the company have mentioned the need for RTAS yet. So this > >> >> application scenario is not very clear. > >> >> >> > >> >> >> > >> >> >>It is not clear what kind of semantics RTAS should provide in > >> streaming > >> >> mode, and the user's business scenarios are not very clear. > >> >> >>Maybe We don't have to support RTAS soon, but we can leave the > >> >> possibility of supporting RTAS in the future in the interface > >> definition. > >> >> >>What do you think? Looking forward to your response! > >> >> >> > >> >> >> > >> >> >>By the way, the other points raised have been updated. thanks. > >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> >>-- > >> >> >> > >> >> >>Best regards, > >> >> >>Mang Zhang > >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> >>At 2022-06-26 11:56:53, "Jark Wu" <imj...@gmail.com> wrote: > >> >> >>>Thanks for the update, Mang and Ron, > >> >> >>> > >> >> >>>The new proposal looks good to me in general, especially keeping the > >> >> >>>behavior > >> >> >>>consistent between batch and streaming mode by default. This is how > >> we > >> >> do > >> >> >>>it > >> >> >>>in the previous "table.dml-sync" option on ML [1]. > >> >> >>> > >> >> >>>Besides that, I just have some final minor comments regarding some > >> >> >>>interfaces. > >> >> >>> > >> >> >>>1) table.ctas-or-rtas.atomicity-enabled > >> >> >>>The "OR" keyword sounds like this configuration can only take effect > >> on > >> >> one > >> >> >>>of CTAS and RTAS. > >> >> >>>What about "table.ctas-and-rtas" or "table.ctas-rtas"? > >> >> >>> > >> >> >>>2) In the FLIP, you have mentioned RTAS many times, but have no plan > >> to > >> >> >>>support it. > >> >> >>>RTAS is another widely used statement similar to CTAS. It seems > >> there is > >> >> >>>not much difference > >> >> >>>between CTAS and RTAS. Considering we are introducing RTAS > >> >> configurations, > >> >> >>>is it possible > >> >> >>> to support RTAS in this FLIP as well? > >> >> >>> > >> >> >>>3) connector.type > >> >> >>>"connector.type" has been deprecated since FLIP-95, could you replace > >> >> them > >> >> >>>with 'connector'? > >> >> >>> > >> >> >>>4) SupportsAtomicCatalog > >> >> >>>I have some concerns about using "Supports.." prefix which is known > >> as > >> >> the > >> >> >>>ability extension for > >> >> >>>DynamicTableSource and DynamicTableSink. Maybe "AtomicCatalog" is > >> >> enough? > >> >> >>> > >> >> >>>Best, > >> >> >>>Jark > >> >> >>> > >> >> >>>[1]: > >> https://lists.apache.org/thread/78r8ybh4q3hkxf935vzjkb7782hqzcj2 > >> >> >>> > >> >> >>>On Fri, 24 Jun 2022 at 22:51, Mang Zhang <zhangma...@163.com> wrote: > >> >> >>> > >> >> >>>> Hi all, > >> >> >>>> Thank you to all those who participated in the discussion and made > >> >> >>>> suggestions! > >> >> >>>> After several rounds of online and offline discussions, the > >> solution > >> >> in > >> >> >>>> FLIP has been updated. > >> >> >>>> Looking forward to more feedback from everyone. > >> >> >>>> > >> >> >>>> > >> >> >>>> > >> >> >>>> > >> >> >>>> > >> >> >>>> > >> >> >>>> > >> >> >>>> -- > >> >> >>>> > >> >> >>>> Best regards, > >> >> >>>> Mang Zhang > >> >> >>>> > >> >> >>>> > >> >> >>>> > >> >> >>>> > >> >> >>>> > >> >> >>>> At 2022-06-24 21:58:01, "Mang Zhang" <zhangma...@163.com> wrote: > >> >> >>>> >Hi godfrey and ron, > >> >> >>>> >Thank you very much for your replies and suggestions. > >> >> >>>> >Special thanks to ron for helping to review and improve the FLIP. > >> >> >>>> >Looking forward to further feedback from others. > >> >> >>>> > > >> >> >>>> > > >> >> >>>> > > >> >> >>>> >-- > >> >> >>>> > > >> >> >>>> >Best regards, > >> >> >>>> >Mang Zhang > >> >> >>>> > > >> >> >>>> > > >> >> >>>> > > >> >> >>>> > > >> >> >>>> > > >> >> >>>> >At 2022-06-24 19:52:58, "ron" <ld...@zju.edu.cn> wrote: > >> >> >>>> >>Thanks for godfrey further feedback, your suggestions are very > >> good > >> >> to > >> >> >>>> me, the FLIP has updated according to your feedback. It will be > >> very > >> >> good > >> >> >>>> if you look at it again。 > >> >> >>>> >> > >> >> >>>> >>Also looking forward to further feedback from others. > >> >> >>>> >> > >> >> >>>> >> > >> >> >>>> >>> -----原始邮件----- > >> >> >>>> >>> 发件人: "godfrey he" <godfre...@gmail.com> > >> >> >>>> >>> 发送时间: 2022-06-24 17:00:51 (星期五) > >> >> >>>> >>> 收件人: dev <dev@flink.apache.org> > >> >> >>>> >>> 抄送: "Yun Gao" <yungao...@aliyun.com> > >> >> >>>> >>> 主题: Re: Re: Re: [DISCUSS] FLIP-218: Support SELECT clause in > >> >> CREATE > >> >> >>>> TABLE(CTAS) > >> >> >>>> >>> > >> >> >>>> >>> Hi all, > >> >> >>>> >>> > >> >> >>>> >>> Sorry for the late reply. > >> >> >>>> >>> > >> >> >>>> >>> >table.cor-table-as-select.atomicity-enabled > >> >> >>>> >>> Regarding `cor`, this abbreviation is not commonly used. > >> >> >>>> >>> > >> >> >>>> >>> >Create Table As Select(CTAS) feature depends on the > >> >> serializability > >> >> >>>> of the catalog. To quickly see if the catalog supports CTAS, we > >> need > >> >> to try > >> >> >>>> to serialize the catalog when compile SQL in planner and if it > >> fails, > >> >> an > >> >> >>>> exception will be >thrown to indicate to user that the catalog does > >> >> not > >> >> >>>> support CTAS because it cannot be serialized. > >> >> >>>> >>> This behavior is too cryptic, and will break the current > >> catalog > >> >> >>>> >>> behavior when using 1.16. > >> >> >>>> >>> I suggest we introduce a new interface for atomic catalog which > >> >> >>>> >>> implements Serializable. > >> >> >>>> >>> The existent catalogs can choose whether implements the new > >> >> catalog > >> >> >>>> interface. > >> >> >>>> >>> > >> >> >>>> >>> > Catalog#inferTableOptions > >> >> >>>> >>> I strongly recommend not introducing this feature now, because > >> the > >> >> >>>> >>> behavior is unclear. > >> >> >>>> >>> 1) if the catalog support managed table, the connector option > >> is > >> >> >>>> >>> empty. but if user forget to > >> >> >>>> >>> set connector option for CTAS statement, the created table > >> will be > >> >> >>>> >>> managed table. > >> >> >>>> >>> 2) the options and its values for catalog and for connector > >> may be > >> >> >>>> different, > >> >> >>>> >>> so use the catalog option may cause expected errors. > >> >> >>>> >>> > >> >> >>>> >>> > StreamGraph#addJobStatusHook > >> >> >>>> >>> I prefer `registerJobStatusHook` > >> >> >>>> >>> > >> >> >>>> >>> Best, > >> >> >>>> >>> Godfrey > >> >> >>>> >>> > >> >> >>>> >>> Mang Zhang <zhangma...@163.com> 于2022年6月13日周一 16:43写道: > >> >> >>>> >>> > > >> >> >>>> >>> > Hi Yun, > >> >> >>>> >>> > Thanks for your reply! > >> >> >>>> >>> > Through offline communication with Dalong, I updated the > >> >> >>>> JobStatusHook part to FLIP, looking forward to your feedback. > >> >> >>>> >>> > > >> >> >>>> >>> > > >> >> >>>> >>> > > >> >> >>>> >>> > -- > >> >> >>>> >>> > > >> >> >>>> >>> > Best regards, > >> >> >>>> >>> > Mang Zhang > >> >> >>>> >>> > > >> >> >>>> >>> > > >> >> >>>> >>> > > >> >> >>>> >>> > > >> >> >>>> >>> > > >> >> >>>> >>> > At 2022-05-31 14:34:25, "Yun Gao" > >> <yungao...@aliyun.com.INVALID > >> >> > > >> >> >>>> wrote: > >> >> >>>> >>> > >Hi, > >> >> >>>> >>> > > > >> >> >>>> >>> > >Regarding the drop operation, with some offline discussion > >> with > >> >> >>>> Dalong and Zhu, > >> >> >>>> >>> > >we think that listening in the client side might be > >> problematic > >> >> >>>> since it would exit > >> >> >>>> >>> > >after submitting the jobs in detached mode, thus the > >> operation > >> >> >>>> might need to > >> >> >>>> >>> > >be in the JobMaster side. > >> >> >>>> >>> > > > >> >> >>>> >>> > >For the listener interface, currently JobListener only > >> resides > >> >> in > >> >> >>>> the client side > >> >> >>>> >>> > >and contains unsuitable methods like onJobSubmitted for this > >> >> >>>> scenario, and > >> >> >>>> >>> > >the internal JobStatusListener is designed to be used inside > >> >> JM and > >> >> >>>> is not > >> >> >>>> >>> > >serializable, thus we tend to add a new interface > >> >> JobStatusHook, > >> >> >>>> >>> > >which could be attached to the JobGraph and executed in the > >> >> >>>> JobMaster. > >> >> >>>> >>> > >The interface will also be marked as Internal. > >> >> >>>> >>> > > > >> >> >>>> >>> > >Best, > >> >> >>>> >>> > >Yun > >> >> >>>> >>> > > > >> >> >>>> >>> > > > >> >> >>>> >>> > > >> >> >------------------------------------------------------------------ > >> >> >>>> >>> > >From:Mang Zhang <zhangma...@163.com> > >> >> >>>> >>> > >Send Time:2022 May 25 (Wed.) 10:24 > >> >> >>>> >>> > >To:dev <dev@flink.apache.org> > >> >> >>>> >>> > >Subject:Re:Re: [DISCUSS] FLIP-218: Support SELECT clause in > >> >> CREATE > >> >> >>>> TABLE(CTAS) > >> >> >>>> >>> > > > >> >> >>>> >>> > >Hi, Martijn > >> >> >>>> >>> > >Thanks for your reply! > >> >> >>>> >>> > >I looked at the SQL standard, CTAS is part of the SQL > >> standard. > >> >> >>>> >>> > >Feature T172 is "AS subquery clause in table definition". > >> >> >>>> >>> > > > >> >> >>>> >>> > > > >> >> >>>> >>> > > > >> >> >>>> >>> > >-- > >> >> >>>> >>> > > > >> >> >>>> >>> > >Best regards, > >> >> >>>> >>> > >Mang Zhang > >> >> >>>> >>> > > > >> >> >>>> >>> > > > >> >> >>>> >>> > > > >> >> >>>> >>> > > > >> >> >>>> >>> > > > >> >> >>>> >>> > >At 2022-05-04 21:49:00, "Martijn Visser" < > >> >> martijnvis...@apache.org> > >> >> >>>> wrote: > >> >> >>>> >>> > >>Hi everyone, > >> >> >>>> >>> > >> > >> >> >>>> >>> > >>Can we identify if this proposed syntax is part of the SQL > >> >> >>>> standard? > >> >> >>>> >>> > >> > >> >> >>>> >>> > >>Best regards, > >> >> >>>> >>> > >> > >> >> >>>> >>> > >>Martijn Visser > >> >> >>>> >>> > >>https://twitter.com/MartijnVisser82 > >> >> >>>> >>> > >>https://github.com/MartijnVisser > >> >> >>>> >>> > >> > >> >> >>>> >>> > >> > >> >> >>>> >>> > >>On Fri, 29 Apr 2022 at 11:19, yuxia < > >> >> luoyu...@alumni.sjtu.edu.cn> > >> >> >>>> wrote: > >> >> >>>> >>> > >> > >> >> >>>> >>> > >>> Thanks for for driving this work, it's to be a useful > >> >> feature. > >> >> >>>> >>> > >>> About the flip-218, I have some questions. > >> >> >>>> >>> > >>> > >> >> >>>> >>> > >>> 1: Does our CTAS syntax support specify target table's > >> >> schema > >> >> >>>> including > >> >> >>>> >>> > >>> column name and data type? I think it maybe a useful > >> fature > >> >> in > >> >> >>>> case we want > >> >> >>>> >>> > >>> to change the data types in target table instead of > >> always > >> >> copy > >> >> >>>> the source > >> >> >>>> >>> > >>> table's schema. It'll be more flexible with this feature. > >> >> >>>> >>> > >>> Btw, MySQL's "CREATE TABLE ... SELECT Statement"[1] > >> support > >> >> this > >> >> >>>> feature. > >> >> >>>> >>> > >>> > >> >> >>>> >>> > >>> 2: Seems it'll requre sink to implement an public > >> interface > >> >> to > >> >> >>>> drop table, > >> >> >>>> >>> > >>> so what's the interface will look like? > >> >> >>>> >>> > >>> > >> >> >>>> >>> > >>> [1] > >> >> >>>> https://dev.mysql.com/doc/refman/8.0/en/create-table-select.html > >> >> >>>> >>> > >>> > >> >> >>>> >>> > >>> Best regards, > >> >> >>>> >>> > >>> Yuxia > >> >> >>>> >>> > >>> > >> >> >>>> >>> > >>> ----- 原始邮件 ----- > >> >> >>>> >>> > >>> 发件人: "Mang Zhang" <zhangma...@163.com> > >> >> >>>> >>> > >>> 收件人: "dev" <dev@flink.apache.org> > >> >> >>>> >>> > >>> 发送时间: 星期四, 2022年 4 月 28日 下午 4:57:24 > >> >> >>>> >>> > >>> 主题: [DISCUSS] FLIP-218: Support SELECT clause in CREATE > >> >> >>>> TABLE(CTAS) > >> >> >>>> >>> > >>> > >> >> >>>> >>> > >>> Hi, everyone > >> >> >>>> >>> > >>> > >> >> >>>> >>> > >>> > >> >> >>>> >>> > >>> I would like to open a discussion for support select > >> clause > >> >> in > >> >> >>>> CREATE > >> >> >>>> >>> > >>> TABLE(CTAS), > >> >> >>>> >>> > >>> With the development of business and the enhancement of > >> >> flink sql > >> >> >>>> >>> > >>> capabilities, queries become more and more complex. > >> >> >>>> >>> > >>> Now the user needs to use the Create Table statement to > >> >> create > >> >> >>>> the target > >> >> >>>> >>> > >>> table first, and then execute the insert statement. > >> >> >>>> >>> > >>> However, the target table may have many columns, which > >> will > >> >> >>>> bring a lot of > >> >> >>>> >>> > >>> work outside the business logic to the user. > >> >> >>>> >>> > >>> At the same time, ensure that the schema of the created > >> >> target > >> >> >>>> table is > >> >> >>>> >>> > >>> consistent with the schema of the query result. > >> >> >>>> >>> > >>> Using a CTAS syntax like Hive/Spark can greatly > >> facilitate > >> >> the > >> >> >>>> user. > >> >> >>>> >>> > >>> > >> >> >>>> >>> > >>> > >> >> >>>> >>> > >>> > >> >> >>>> >>> > >>> You can find more details in FLIP-218[1]. Looking > >> forward to > >> >> >>>> your feedback. > >> >> >>>> >>> > >>> > >> >> >>>> >>> > >>> > >> >> >>>> >>> > >>> > >> >> >>>> >>> > >>> [1] > >> >> >>>> >>> > >>> > >> >> >>>> > >> >> > >> https://cwiki.apache.org/confluence/display/FLINK/FLIP-218%3A+Support+SELECT+clause+in+CREATE+TABLE(CTAS) > >> >> >>>> >>> > >>> > >> >> >>>> >>> > >>> > >> >> >>>> >>> > >>> > >> >> >>>> >>> > >>> > >> >> >>>> >>> > >>> -- > >> >> >>>> >>> > >>> > >> >> >>>> >>> > >>> Best regards, > >> >> >>>> >>> > >>> Mang Zhang > >> >> >>>> >>> > >>> > >> >> >>>> >>> > > > >> >> >>>> >> > >> >> >>>> >> > >> >> >>>> >>------------------------------ > >> >> >>>> >>Best, > >> >> >>>> >>Ron > >> >> >>>> > >> >> > >> > >