use of com.flink.platform.common.job.Function in project flink-platform-backend by itinycheng.
the class Sql112Application method main.
public static void main(String[] args) throws Exception {
// deSer sql context
Path sqlContextPath = Paths.get(args[0]);
SqlContext sqlContext = JsonUtil.toBean(sqlContextPath, SqlContext.class);
// step 1: create and configure environment
TableEnvironment tEnv = ExecutionEnvs.createExecutionEnv(sqlContext.getExecMode());
Map<String, String> configMap = ConfigLoader.loadDefault(sqlContext.getExecMode());
configMap.putAll(sqlContext.getConfigs());
configMap.putAll(sqlContext.getSqls().stream().filter(sql -> SqlType.SET.equals(sql.getType())).map(Sql::getOperands).collect(toMap(operands -> operands[0], operands -> operands[1])));
configMap.forEach((key, value) -> Configurations.setConfig(tEnv, key, value));
// step 2: add catalog
List<Catalog> catalogs = sqlContext.getCatalogs();
Catalogs.registerCatalogsToTableEnv(tEnv, catalogs);
// step 3: create temporary system function
List<Function> functions = sqlContext.getFunctions();
Functions.registerFunctionsToTableEnv(tEnv, functions);
// step 4: exec sql
List<Sql> executableSqls = sqlContext.getSqls().stream().filter(sql -> !SqlType.SET.equals(sql.getType())).collect(toList());
ExecuteSqls.execSqls(tEnv, executableSqls);
}
Aggregations