Search in sources :

Example 1 with SqlContext

use of com.flink.platform.common.job.SqlContext 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)

Example 2 with SqlContext

use of com.flink.platform.common.job.SqlContext in project flink-platform-backend by itinycheng.

the class SqlContextHelper method convertFromAndSaveToFile.

public String convertFromAndSaveToFile(JobInfo jobInfo) {
    SqlContext sqlContext = convertFrom(jobInfo);
    long timestamp = System.currentTimeMillis();
    String fileName = String.join(DOT, jobInfo.getCode(), String.valueOf(timestamp), JSON_FILE_SUFFIX);
    return saveToFile(fileName, sqlContext);
}
Also used : SqlContext(com.flink.platform.common.job.SqlContext)

Example 3 with SqlContext

use of com.flink.platform.common.job.SqlContext in project flink-platform-backend by itinycheng.

the class JsonUtilTest method testEnum.

@Test
public void testEnum() {
    SqlContext sqlContext = new SqlContext();
    sqlContext.setId("a");
    Sql sql = new Sql();
    sql.setType(SqlType.INSERT_INTO);
    sql.setOperands(new String[] { "insert into table" });
    sqlContext.setSqls(Collections.singletonList(sql));
    sqlContext.setExecMode(ExecutionMode.BATCH);
    String jsonString = JsonUtil.toJsonString(sqlContext);
    System.out.println(jsonString);
    SqlContext sqlContext1 = JsonUtil.toBean(jsonString, SqlContext.class);
    System.out.println(sqlContext1);
}
Also used : SqlContext(com.flink.platform.common.job.SqlContext) Sql(com.flink.platform.common.job.Sql) Test(org.junit.Test)

Example 4 with SqlContext

use of com.flink.platform.common.job.SqlContext in project flink-platform-backend by itinycheng.

the class SqlContextHelper method convertFrom.

public SqlContext convertFrom(JobInfo jobInfo) {
    SqlContext sqlContext = new SqlContext();
    sqlContext.setId(jobInfo.getCode());
    sqlContext.setSqls(toSqls(jobInfo.getSubject()));
    sqlContext.setExecMode(jobInfo.getExecMode());
    sqlContext.setExtJars(ListUtils.defaultIfNull(jobInfo.getExtJars(), Collections.emptyList()));
    sqlContext.setConfigs(toConfigs(jobInfo.getConfigs()));
    sqlContext.setCatalogs(toCatalogs(jobInfo.getCatalogs()));
    sqlContext.setFunctions(toFunctions());
    return sqlContext;
}
Also used : SqlContext(com.flink.platform.common.job.SqlContext)

Aggregations

SqlContext (com.flink.platform.common.job.SqlContext)4 Sql (com.flink.platform.common.job.Sql)2 SqlType (com.flink.platform.common.enums.SqlType)1 Catalog (com.flink.platform.common.job.Catalog)1 Function (com.flink.platform.common.job.Function)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 Test (org.junit.Test)1