Hello everybody, I was trying to get rid of the deprecation warnings about using BatchTableEnvironment.registerTableSink() but I don't know how to proceed.
My current code does the following: BatchTableEnvironment benv = BatchTableEnvironment.create(env); benv.registerTableSink("outUsers", getFieldNames(), getFieldTypes(), new CsvTableSink(outputDir + "users.tsv", "\t", 1, WriteMode.OVERWRITE)); benv.executeSql("INSERT INTO `outUsers` SELECT * FROM users"); Initially I thought to port the code to benv.connect() because it I can use the IDE autocomplete but I discovered that also connect () is deprecated in favor of executeSql(). Just for the sake of curiosity I've tried to use connect() and I didn't find how to specify overwrite. Using INSERT OVERWRITE was causing this error: INSERT OVERWRITE requires OverwritableTableSink but actually got org.apache.flink.table.sinks.CsvTableSink Probably using executeSql is the only non-deprecated way to register my sink. So I started to write the CREATE statement to create my table but also here there are 2 problems: 1) Do I really have to write by myself a method that convert the schema into the relative string? Is there any utility that already does that? My naive attempt was something like: private static String getCreateStatement(String tableName, UserToRow userToRow) { return "CREATE TABLE " + tableName + " (" + // userToRow.getSchema().toString() + ")" + // this does not work unfortunately ") WITH (" + // "'connector' = 'filesystem'," + // "'path' = 'file:///tmp/test.csv'," + // "'format' = 'csv'," + // "'sink.shuffle-by-partition.enable' = 'false'" + // ");"; } 2) How to solve the overwrite problem..? 3) Is it really the only non-deprecated way to create a table the executeSql? Thanks in advance, Flavio