Unverified Commit 710c7eee authored by Licho's avatar Licho Committed by GitHub

refactor: simplify Executor code, and log and extract common code fragment (#1166)

* refactor: simplify Executor code, and log and extract common code fragment.

* refactor: remove @SLf4j annotation
Signed-off-by: 's avatarLicho <chinabhsun@gmail.com>
Signed-off-by: 's avatarLicho <chinabhsun@gmail.com>
parent 8ca8a953
...@@ -29,10 +29,10 @@ import org.apache.flink.table.api.TableResult; ...@@ -29,10 +29,10 @@ import org.apache.flink.table.api.TableResult;
**/ **/
public class SelectResultBuilder implements ResultBuilder { public class SelectResultBuilder implements ResultBuilder {
private Integer maxRowNum; private final Integer maxRowNum;
private boolean isChangeLog; private final boolean isChangeLog;
private boolean isAutoCancel; private final boolean isAutoCancel;
private String timeZone; private final String timeZone;
public SelectResultBuilder(Integer maxRowNum, boolean isChangeLog, boolean isAutoCancel, String timeZone) { public SelectResultBuilder(Integer maxRowNum, boolean isChangeLog, boolean isAutoCancel, String timeZone) {
this.maxRowNum = maxRowNum; this.maxRowNum = maxRowNum;
......
...@@ -26,6 +26,9 @@ import java.util.HashMap; ...@@ -26,6 +26,9 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
...@@ -42,7 +45,20 @@ import lombok.Setter; ...@@ -42,7 +45,20 @@ import lombok.Setter;
@Getter @Getter
public class ExecutorSetting { public class ExecutorSetting {
private boolean useBatchModel = false; private static final Logger log = LoggerFactory.getLogger(ExecutorSetting.class);
public static final ExecutorSetting DEFAULT = new ExecutorSetting(0, 1, true);
public static final String CHECKPOINT_CONST = "checkpoint";
public static final String PARALLELISM_CONST = "parallelism";
public static final String USE_SQL_FRAGMENT = "useSqlFragment";
public static final String USE_STATEMENT_SET = "useStatementSet";
public static final String USE_BATCH_MODEL = "useBatchModel";
public static final String SAVE_POINT_PATH = "savePointPath";
public static final String JOB_NAME = "jobName";
public static final String CONFIG_CONST = "config";
private static final ObjectMapper mapper = new ObjectMapper();
private boolean useBatchModel;
private Integer checkpoint; private Integer checkpoint;
private Integer parallelism; private Integer parallelism;
private boolean useSqlFragment; private boolean useSqlFragment;
...@@ -50,54 +66,37 @@ public class ExecutorSetting { ...@@ -50,54 +66,37 @@ public class ExecutorSetting {
private String savePointPath; private String savePointPath;
private String jobName; private String jobName;
private Map<String, String> config; private Map<String, String> config;
public static final ExecutorSetting DEFAULT = new ExecutorSetting(0, 1, true);
private static final ObjectMapper mapper = new ObjectMapper();
public ExecutorSetting(boolean useSqlFragment) { public ExecutorSetting(boolean useSqlFragment) {
this.useSqlFragment = useSqlFragment; this(null, useSqlFragment);
} }
public ExecutorSetting(Integer checkpoint) { public ExecutorSetting(Integer checkpoint) {
this.checkpoint = checkpoint; this(checkpoint, false);
} }
public ExecutorSetting(Integer checkpoint, boolean useSqlFragment) { public ExecutorSetting(Integer checkpoint, boolean useSqlFragment) {
this.checkpoint = checkpoint; this(checkpoint, null, useSqlFragment, null, null);
this.useSqlFragment = useSqlFragment;
} }
public ExecutorSetting(Integer checkpoint, Integer parallelism, boolean useSqlFragment) { public ExecutorSetting(Integer checkpoint, Integer parallelism, boolean useSqlFragment) {
this.checkpoint = checkpoint; this(checkpoint, parallelism, useSqlFragment, null, null);
this.parallelism = parallelism;
this.useSqlFragment = useSqlFragment;
} }
public ExecutorSetting(Integer checkpoint, Integer parallelism, boolean useSqlFragment, String savePointPath, String jobName) { public ExecutorSetting(Integer checkpoint, Integer parallelism, boolean useSqlFragment, String savePointPath, String jobName) {
this.checkpoint = checkpoint; this(checkpoint, parallelism, useSqlFragment, savePointPath, jobName, null);
this.parallelism = parallelism;
this.useSqlFragment = useSqlFragment;
this.savePointPath = savePointPath;
this.jobName = jobName;
} }
public ExecutorSetting(Integer checkpoint, Integer parallelism, boolean useSqlFragment, String savePointPath) { public ExecutorSetting(Integer checkpoint, Integer parallelism, boolean useSqlFragment, String savePointPath) {
this.checkpoint = checkpoint; this(checkpoint, parallelism, useSqlFragment, savePointPath, null, null);
this.parallelism = parallelism;
this.useSqlFragment = useSqlFragment;
this.savePointPath = savePointPath;
} }
public ExecutorSetting(Integer checkpoint, Integer parallelism, boolean useSqlFragment, String savePointPath, String jobName, Map<String, String> config) { public ExecutorSetting(Integer checkpoint, Integer parallelism, boolean useSqlFragment, String savePointPath, String jobName, Map<String, String> config) {
this.checkpoint = checkpoint; this(checkpoint, parallelism, useSqlFragment, false, false, savePointPath, jobName, config);
this.parallelism = parallelism;
this.useSqlFragment = useSqlFragment;
this.savePointPath = savePointPath;
this.jobName = jobName;
this.config = config;
} }
public ExecutorSetting(Integer checkpoint, Integer parallelism, boolean useSqlFragment, boolean useStatementSet, public ExecutorSetting(Integer checkpoint, Integer parallelism, boolean useSqlFragment, boolean useStatementSet, boolean useBatchModel, String savePointPath, String jobName,
boolean useBatchModel, String savePointPath, String jobName, Map<String, String> config) { Map<String, String> config) {
this.checkpoint = checkpoint; this.checkpoint = checkpoint;
this.parallelism = parallelism; this.parallelism = parallelism;
this.useSqlFragment = useSqlFragment; this.useSqlFragment = useSqlFragment;
...@@ -108,52 +107,44 @@ public class ExecutorSetting { ...@@ -108,52 +107,44 @@ public class ExecutorSetting {
this.config = config; this.config = config;
} }
public static ExecutorSetting build(Integer checkpoint, Integer parallelism, boolean useSqlFragment, boolean useStatementSet, public static ExecutorSetting build(Integer checkpoint, Integer parallelism, boolean useSqlFragment, boolean useStatementSet, boolean useBatchModel, String savePointPath, String jobName,
boolean useBatchModel, String savePointPath, String jobName, String configJson) { String configJson) {
List<Map<String, String>> configList = new ArrayList<>(); List<Map<String, String>> configList = new ArrayList<>();
if (Asserts.isNotNullString(configJson)) { if (Asserts.isNotNullString(configJson)) {
try { try {
configList = mapper.readValue(configJson, ArrayList.class); configList = mapper.readValue(configJson, ArrayList.class);
} catch (JsonProcessingException e) { } catch (JsonProcessingException e) {
e.printStackTrace(); log.error(e.getMessage());
} }
} }
Map<String, String> config = new HashMap<>(); Map<String, String> config = new HashMap<>();
for (Map<String, String> item : configList) { for (Map<String, String> item : configList) {
config.put(item.get("key"), item.get("value")); config.put(item.get("key"), item.get("value"));
} }
return new ExecutorSetting(checkpoint, parallelism, useSqlFragment, useStatementSet, useBatchModel, savePointPath, jobName, config); return new ExecutorSetting(checkpoint, parallelism, useSqlFragment, useStatementSet, useBatchModel,
savePointPath, jobName, config);
} }
public static ExecutorSetting build(Map<String, String> settingMap) { public static ExecutorSetting build(Map<String, String> settingMap) {
Integer checkpoint = null; Integer checkpoint = Integer.valueOf(settingMap.get(CHECKPOINT_CONST));
Integer parallelism = null; Integer parallelism = Integer.valueOf(settingMap.get(PARALLELISM_CONST));
if (settingMap.containsKey("checkpoint") && !"".equals(settingMap.get("checkpoint"))) {
checkpoint = Integer.valueOf(settingMap.get("checkpoint")); return build(checkpoint, parallelism, "1".equals(settingMap.get(USE_SQL_FRAGMENT)), "1".equals(settingMap.get(USE_STATEMENT_SET)), "1".equals(settingMap.get(USE_BATCH_MODEL)),
settingMap.get(SAVE_POINT_PATH), settingMap.get(JOB_NAME), settingMap.get(CONFIG_CONST));
} }
if (settingMap.containsKey("parallelism") && !"".equals(settingMap.get("parallelism"))) {
parallelism = Integer.valueOf(settingMap.get("parallelism")); public boolean isValidParallelism() {
return this.getParallelism() != null && this.getParallelism() > 0;
} }
return build(checkpoint,
parallelism, public boolean isValidJobName() {
"1".equals(settingMap.get("useSqlFragment")), return this.getJobName() != null && !"".equals(this.getJobName());
"1".equals(settingMap.get("useStatementSet")),
"1".equals(settingMap.get("useBatchModel")),
settingMap.get("savePointPath"),
settingMap.get("jobName"),
settingMap.get("config"));
} }
@Override @Override
public String toString() { public String toString() {
return "ExecutorSetting{" return String.format("ExecutorSetting{checkpoint=%d, parallelism=%d, useSqlFragment=%s, useStatementSet=%s, savePointPath='%s', jobName='%s', config=%s}", checkpoint, parallelism,
+ "checkpoint=" + checkpoint useSqlFragment, useStatementSet, savePointPath, jobName, config);
+ ", parallelism=" + parallelism
+ ", useSqlFragment=" + useSqlFragment
+ ", useStatementSet=" + useStatementSet
+ ", savePointPath='" + savePointPath + '\''
+ ", jobName='" + jobName + '\''
+ ", config=" + config
+ '}';
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment