How can I use the Table [Print SQL connector][1]? I tried the
following (batch mode)  but it does not give any output:


EnvironmentSettings settings =
EnvironmentSettings.newInstance().useBlinkPlanner().inBatchMode().build();
TableEnvironment tEnv = TableEnvironment.create(settings);

final LocalDateTime DATE_TIME = LocalDateTime.of(2020, 1, 1, 0, 0);

Table transactions =
        tEnv.fromValues(
                DataTypes.ROW(
                        DataTypes.FIELD("account_id", DataTypes.BIGINT()),
                        DataTypes.FIELD("amount", DataTypes.BIGINT()),
                        DataTypes.FIELD("transaction_time",
DataTypes.TIMESTAMP(3))),
                Row.of(1, 188, DATE_TIME.plusMinutes(12)),
                Row.of(2, 374, DATE_TIME.plusMinutes(47)),
                Row.of(3, 112, DATE_TIME.plusMinutes(36)),
                Row.of(4, 478, DATE_TIME.plusMinutes(3)),
                Row.of(5, 208, DATE_TIME.plusMinutes(8)),
                Row.of(1, 379, DATE_TIME.plusMinutes(53)),
                Row.of(2, 351, DATE_TIME.plusMinutes(32)),
                Row.of(3, 320, DATE_TIME.plusMinutes(31)),
                Row.of(4, 259, DATE_TIME.plusMinutes(19)),
                Row.of(5, 273, DATE_TIME.plusMinutes(42)));
tEnv.executeSql("CREATE TABLE print_table(account_id BIGINT, amount
BIGINT, transaction_time TIMESTAMP) WITH ('connector' = 'print')");

transactions.executeInsert("print_table");


I can "materialize" the result manually and print them out with :

for (Row row : materialize(transactions.execute())) {
    System.out.println(row);
}

private static List<Row> materialize(TableResult results) {
    try (CloseableIterator<Row> resultIterator = results.collect()) {
        return StreamSupport

.stream(Spliterators.spliteratorUnknownSize(resultIterator,
Spliterator.ORDERED), false)
                .collect(Collectors.toList());
    } catch (Exception e) {
        throw new RuntimeException("Failed to materialize results", e);
    }
}


But I would like to know why I can't just use the Print sink.

I've tried with  `.inBatchMode()` and with `inStreamingMode()`, so I
don't thinks it's that.

Does anybody know of any working example involving the print connector?



[1]: 
https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/connectors/print.html
-- 
/Rubén

Reply via email to