Hi, Godfrey
Thanks for your reply and suggest!
I adjusted the style of FLIP.
There are still two questions that need to be discussed:
1. The new API we introduced to CTAS, in Table or Tableenvalonment?
2. The Drop Table Operation in JM is everyone's consensus, more details design 
at runtime need to be discussed.



--

Best regards,
Mang Zhang





At 2022-05-18 12:28:23, "godfrey he" <godfre...@gmail.com> wrote:
>Hi Mang,
>
>Thanks for driving this FLIP.
>
>Please follow the FLIP template[1] style, and the `Syntax ` is part of
>the `Public API Changes` section.
>‘Program research’ and 'Implementation Plan' are part of the `Proposed
>Changes` section,
>or move ‘Program research’ to the appendix.
>
>> Providing methods that are used to execute CTAS for Table API users.
>We should introduce `createTable` in `Table` instead of `TableEnvironment`.
>Because all table operations are defined in `Table`, see: Table#executeInsert,
>Table#insertInto, etc.
>About the method name, I prefer to use `createTableAs`.
>
>> TableSink needs to provide the CleanUp API, developers implement as needed.
>I think it's hard for TableSink to implement a clean up operation. For
>file system sink,
>the data can be written to a temporary directory, but for key/value
>sinks, it's hard to
>remove the written keys, unless the sink records all written keys.
>
>> Do not do drop table operations in the framework, drop table is implemented 
>> in
>TableSink according to the needs of specific TableSink
>The TM process may crash at any time, and the drop operation will not
>be executed any more.
>
>How about we do the drop table operation and cleanup data action in the 
>catalog?
>Where to execute the drop operation. one approach is in client, other is in JM.
>1. in client: this requires the client to be alive until the job is
>finished and failed.
>2. in JM: this requires the JM could provide some interfaces/hooks
>that the planner
>implements the logic and the code will be executed in JM.
>I prefer the approach two, but it requires more detail design with
>runtime @gaoyunhaii, @kevin.yingjie
>
>
>[1] https://cwiki.apache.org/confluence/display/FLINK/FLIP+Template
>
>Best,
>Godfrey
>
>
>Mang Zhang <zhangma...@163.com> 于2022年5月6日周五 11:24写道:
>
>>
>> Hi, Yuxia
>> Thanks for your reply!
>> About the question 1, we will not support, FLIP-218[1] is to simplify the 
>> complexity of user DDL and make it easier for users to use. I have never 
>> encountered this case in a big data.
>> About the question 2, we will provide a public API like below public void 
>> cleanUp();
>>
>>       Regarding the mechanism of cleanUp, people who are familiar with the 
>> runtime module need to provide professional advice, which is what we need to 
>> focus on.
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> --
>>
>> Best regards,
>> Mang Zhang
>>
>>
>>
>>
>>
>> At 2022-04-29 17:00:03, "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
>>
>>

Reply via email to