Thanks for updating. 
Now, the FLIP looks good to me. 

Best regards, 
Yuxia 


发件人: "zhangmang1" <zhangma...@163.com> 
收件人: luoyu...@alumni.sjtu.edu.cn 
抄送: "dev" <dev@flink.apache.org>, "Martijn Visser" <martijnvis...@apache.org>, 
imj...@gmail.com 
发送时间: 星期二, 2022年 7 月 05日 上午 11:35:35 
主题: Re:Re: Re: Re: Re:Re: [DISCUSS] FLIP-218: Support SELECT clause in CREATE 
TABLE(CTAS) 

Hi yuxia, 
I updated the FLIP and adjusted your concern for RTAS and AtomicCatalog, not 
sure if it solved your concern, looking forward to your reply! 








-- 
Best regards, 
Mang Zhang 




At 2022-07-05 11:26:22, "Jark Wu" <imj...@gmail.com> wrote:
>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
>> >> >> >>>>
>> >> >>
>> >>
>>
>> 

Reply via email to