2
package FlinkAPI;


import org.apache.flink.api.common.functions.FilterFunction;
import org.apache.flink.api.common.functions.MapFunction;
import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.streaming.api.datastream.DataStream;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.table.api.EnvironmentSettings;
import org.apache.flink.table.api.Table;
import org.apache.flink.table.api.bridge.java.StreamTableEnvironment;
import org.apache.flink.types.Row;


public class Ecs2KafkaSource {
    public static void main(String[] args) throws Exception {


         //build ExecutionEnvironment
        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();


        EnvironmentSettings bsSettings = EnvironmentSettings.newInstance().useBlinkPlanner().inStreamingMode().build();

        //build table API ExecutionEnvironment
        StreamTableEnvironment tenv = StreamTableEnvironment.create(env, bsSettings);


        String sourceDDL =
                "create table dws_base_wms_inv_data_dd (         \n " +
                        "  id STRING,                           \n " +
                        "  virtual_warehouse_id STRING,         \n " +
                        "  commodity_code STRING,               \n " +
                        "  product_key STRING,                  \n " +
                        "  size_code STRING,                    \n " +
                        "  inventory_quantity INT,              \n " +
                        "  stored_number INT,                    \n " +
                        "  sal_inv INT,                          \n " +
                        "  etl_time timestamp(3),                        \n " +
                        "  PRIMARY KEY (id) NOT ENFORCED                 \n " +
                        ") with (                                        \n " +
                        " 'connector' = 'upsert-kafka',                  \n " +
                        " 'properties.bootstrap.servers' = '10.251.xx.xx:9092,10.251.xx.xx:9092,10.251.xx.xx:9092', \n " +
                        " 'topic' = 'bdcr_dws.dws_base_wms_inv_data_dd', \n " +
                        " 'key.json.ignore-parse-errors' = 'true', \n " +
                        " 'value.json.fail-on-missing-field' = 'false', \n " +
                        " 'value.json.ignore-parse-errors' = 'true', \n " +
                        " 'key.format' = 'json', \n " +
                        " 'value.format' = 'json' \n " +
                        ") ";

        System.out.println(sourceDDL);

        tenv.executeSql("sourceDDL");

        Table table = tenv.sqlQuery("select * from dws_base_wms_inv_data_dd ");


        DataStream<Tuple2<Boolean, Row>> dataStream = tenv.toRetractStream(table, Row.class);
        dataStream.map(new MapFunction<Tuple2<Boolean, Row>, Row>() {
            @Override
            public Row map(Tuple2<Boolean, Row> booleanRowTuple2) throws Exception {
                if (booleanRowTuple2.f0) {
                    return booleanRowTuple2.f1;
                } else {

                }
                return null;
            }
        }).filter(new FilterFunction<Row>() {
            @Override
            public boolean filter(Row row) throws Exception {
                return row != null;
            }
        }).print("dws_base_wms_inv_data_dd ").setParallelism(1);

        
        
        try {
            env.execute("Ecs2KafkaSource");
        } catch (Exception e) {
            e.printStackTrace();
        }




    }
} 

The following error was reported:

Exception in thread "main" org.apache.flink.table.api.SqlParserException: SQL parse failed. Non-query expression encountered in illegal context
    at org.apache.flink.table.planner.calcite.CalciteParser.parse(CalciteParser.java:56)
    at org.apache.flink.table.planner.delegation.ParserImpl.parse(ParserImpl.java:74)
    at org.apache.flink.table.api.internal.TableEnvironmentImpl.executeSql(TableEnvironmentImpl.java:660)
    at FlinkAPI.Ecs2KafkaSource.main(Ecs2KafkaSource.java:77)
Caused by: org.apache.calcite.sql.parser.SqlParseException: Non-query expression encountered in illegal context
    at org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.convertException(FlinkSqlParserImpl.java:442)
    at org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.normalizeException(FlinkSqlParserImpl.java:205)
    at org.apache.calcite.sql.parser.SqlParser.handleException(SqlParser.java:140)
    at org.apache.calcite.sql.parser.SqlParser.parseQuery(SqlParser.java:155)
    at org.apache.calcite.sql.parser.SqlParser.parseStmt(SqlParser.java:180)
    at org.apache.flink.table.planner.calcite.CalciteParser.parse(CalciteParser.java:54)
    ... 3 more
Caused by: org.apache.calcite.runtime.CalciteException: Non-query expression encountered in illegal context
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:467)
    at org.apache.calcite.runtime.Resources$ExInst.ex(Resources.java:560)
    at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:883)
    at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:868)
    at org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.checkNonQueryExpression(FlinkSqlParserImpl.java:365)
    at org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.Expression3(FlinkSqlParserImpl.java:19011)
    at org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.Expression2b(FlinkSqlParserImpl.java:18680)
    at org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.Expression2(FlinkSqlParserImpl.java:18721)
    at org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.Expression(FlinkSqlParserImpl.java:18652)
    at org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.LeafQueryOrExpr(FlinkSqlParserImpl.java:18629)
    at org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.QueryOrExpr(FlinkSqlParserImpl.java:18089)
    at org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.OrderedQueryOrExpr(FlinkSqlParserImpl.java:558)
    at org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.SqlStmt(FlinkSqlParserImpl.java:3843)
    at org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.SqlStmtEof(FlinkSqlParserImpl.java:3882)
    at org.apache.flink.sql.parser.impl.FlinkSqlParserImpl.parseSqlStmtEof(FlinkSqlParserImpl.java:253)
    at org.apache.calcite.sql.parser.SqlParser.parseQuery(SqlParser.java:153)
    ... 5 more

Process finished with exit code 1
OneCricketeer
  • 179,855
  • 19
  • 132
  • 245
SOBER
  • 21
  • 1

0 Answers0