Search in sources :

Example 1 with Function

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);
}
Also used : Path(java.nio.file.Path) Functions(com.flink.platform.core.helper.Functions) TableEnvironment(org.apache.flink.table.api.TableEnvironment) Configurations(com.flink.platform.core.helper.Configurations) Sql(com.flink.platform.common.job.Sql) JsonUtil(com.flink.platform.common.util.JsonUtil) List(java.util.List) Collectors.toList(java.util.stream.Collectors.toList) ConfigLoader(com.flink.platform.core.common.ConfigLoader) Collectors.toMap(java.util.stream.Collectors.toMap) Catalog(com.flink.platform.common.job.Catalog) Catalogs(com.flink.platform.core.helper.Catalogs) Paths(java.nio.file.Paths) Map(java.util.Map) Function(com.flink.platform.common.job.Function) SqlContext(com.flink.platform.common.job.SqlContext) ExecuteSqls(com.flink.platform.core.helper.ExecuteSqls) SqlType(com.flink.platform.common.enums.SqlType) ExecutionEnvs(com.flink.platform.core.helper.ExecutionEnvs) Path(java.nio.file.Path) Function(com.flink.platform.common.job.Function) SqlContext(com.flink.platform.common.job.SqlContext) TableEnvironment(org.apache.flink.table.api.TableEnvironment) Catalog(com.flink.platform.common.job.Catalog) Sql(com.flink.platform.common.job.Sql)

Aggregations

SqlType (com.flink.platform.common.enums.SqlType)1 Catalog (com.flink.platform.common.job.Catalog)1 Function (com.flink.platform.common.job.Function)1 Sql (com.flink.platform.common.job.Sql)1 SqlContext (com.flink.platform.common.job.SqlContext)1 JsonUtil (com.flink.platform.common.util.JsonUtil)1 ConfigLoader (com.flink.platform.core.common.ConfigLoader)1 Catalogs (com.flink.platform.core.helper.Catalogs)1 Configurations (com.flink.platform.core.helper.Configurations)1 ExecuteSqls (com.flink.platform.core.helper.ExecuteSqls)1 ExecutionEnvs (com.flink.platform.core.helper.ExecutionEnvs)1 Functions (com.flink.platform.core.helper.Functions)1 Path (java.nio.file.Path)1 Paths (java.nio.file.Paths)1 List (java.util.List)1 Map (java.util.Map)1 Collectors.toList (java.util.stream.Collectors.toList)1 Collectors.toMap (java.util.stream.Collectors.toMap)1 TableEnvironment (org.apache.flink.table.api.TableEnvironment)1