0
我有一个从输入进来的值列表。值列表可以来自一个文件或一个ResultSet对象或任何其他对象。在java中使用输入实现循环作业执行程序
目标是执行工作流中的下一个步骤,以基于输入值异步运行。
我该如何执行此操作。是否有任何框架,我可以使用这里
这里是我创建通过价值
package com.myframework.loopexecutor.ExecuteLoop;
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.DriverManager;
public class LoopExecutor {
static String dbName;
static String dbServerName;
static String lDbName;
static String lServerName;
static String serverName;
static String dbServerNameSecondary;
static String hive_db = "csp";
private static String driverName = "org.apache.hive.jdbc.HiveDriver";
public static void main(String[] args) throws SQLException {
try {
Class.forName(driverName);
} catch (ClassNotFoundException e) {
e.printStackTrace();
System.exit(1);
}
Connection con = DriverManager.getConnection("jdbc:hive2://localhost");
Statement stmt = con.createStatement();
ResultSet res = stmt.executeQuery(
"select distinct db_name as db_name,db_server_name as db_server_name,lower(db_name) as l_db_name,lower(db_server_name) as l_server_name,regexp_replace(lower(db_server_name), '-', '_') as server_name,db_server_name_secondary as db_server_name_secondary from csp.curated_input");
while (res.next()) {
dbName = res.getString("db_name");
dbServerName = res.getString("db_server_name");
lDbName = res.getString("l_db_name");
lServerName = res.getString("l_server_name");
serverName = res.getString("server_name");
dbServerNameSecondary = res.getString("db_server_name_secondary");
String drop = "Drop table if exists " + hive_db + "." + "IB_C3_" + dbName + "_" + dbServerName;
String insert = "insert into table " + hive_db + "." + "IB_export_log select " + "\'ib_c3_" + dbName + "_"
+ serverName + "\' from " + hive_db + "." + "dual limit 1";
System.out.println("##########################DROP##################################");
System.out.println(drop);
System.out.println("############################INSERT##################################");
System.out.println(insert);
}
}
}