Hi dev,

Recently we have tested the brand-new SQLClient and Flink SQL module, and
we are amazed at this simple way of programming for streaming data
analysis. However, as far as I know, the SET command is only available in
the SQL Client, but not in SQL API.

Although we understand that developers could simply set TableConfig via tEnv
.getConfig().getConfiguration() API, however, we hope that there could be
an API like sqlSet() or something like that, to allow for setting table
configurations within SQL statements themselves, which paves the way for a
unified interface for users to write a Flink SQL job, without the need of
writing any Java or Scala code in a production environment.

Moreover, it could be much better if there could be an API that
automatically detect the type of SQL statement and choose the write logic
to execute, instead of manually choosing sqlUpdate or sqlQuery, i.e.

sql("CREATE TABLE abc ( a VARCHAR(10), b BIGINT ) WITH ( 'xxx' = 'yyy' )");
sql("SET table.exec.mini-batch.enabled = 'true'");
sql("INSERT INTO sink SELECT * FROM abc");

then, users could simply write their SQL code within .sql files and Flink
could read them line by line and call sql() method to parse the code, and
eventually submit to the ExecutionEnvironment and run the program in the
cluster, which is different from current SQL client whose interactive way
of programming is not well suited for production usage.

We would like to know if these proposals contradicts with the current plan
of the community, or if any other issues that should be addressed before
implementing such features.

Thanks,
Weike

Reply via email to