...
These two steps seem to be normal, but if there are many fields, spelling DDL statements can be difficult, and the type mapping of the target table also is prone to errors, and write out these columns in the following insert statement. Therefore, we can support CTAS (CREATE TABLE AS SELECT) like MySQL, Oracle, Microsoft SQL Server, Hive, Spark, etc ... It will be more user friendly. In addition, the Hive dialect already has some support for CTAS. My suggestion would be to support a variation of an optional Feature T172, “AS subquery clause in table definition”, of SQL standard.
...
To ensure that Flink SQL is semantically semantic consistent in Streaming streaming mode and Batch batch mode, combining the current situation of Flink and the needs of our business, choosing LEVEL-1 as the default behavior for Flink streaming and batch mode. If the user requires LEVEL-2 atomicity, this ability can be achieved by enabling the table.ctas-or-rtas.atomicity-enabled option. In general, batch mode usually requires LEVEL-2 atomicity. In a nutshell, Flink provides two level atomicity guarantee, LEVEL-1 as the default behavior.
...
Code Block | ||||
---|---|---|---|---|
| ||||
CREATE TABLE ctas_hudi ( id BIGINT, name STRING, age INT ) WITH ('connector.type' = 'hudi'); INSERT INTO ctas_hudi SELECT id, name, age FROM hive_catalog.default.test WHERE mod(id, 10) = 0; |
Note: Regarding WITH option part in query of sink table, user must specify the 'connector.type' option and some required options corresponding the specific connector as create table DDL way. If these options are not filled, the table to be created is recognized as a managed table, please see Managed Table part for details.
Public Interface
Table
Providing method that are used to execute CTAS(CREATE TABLE AS SELECT) for Table API user.
...