use of com.dtstack.taier.develop.dto.devlop.ExecuteResultVO in project Taier by DTStack.
the class BatchHadoopSelectSqlService method selectRunLog.
/**
* 获取sql运行日志
* @param batchTask
* @param selectSql
* @param tenantId
* @param userId
* @param isRoot
* @param taskType
* @return
* @throws Exception
*/
public ExecuteResultVO selectRunLog(BatchTask batchTask, BatchSelectSql selectSql, Long tenantId, Long userId, Boolean isRoot, Integer taskType) throws Exception {
String jobId = selectSql.getJobId();
ExecuteResultVO result = new ExecuteResultVO(jobId);
// 是否需要脱敏,非admin用户并且是sparkSql needMask才会为true ps:hiveSql不支持脱敏
if (TempJobType.SIMPLE_SELECT.getType().equals(selectSql.getIsSelectSql())) {
return result;
}
ActionJobEntityVO engineEntity = null;
// 高级运行的临时表记录和发送到engine的jobId不是同一条记录
if (StringUtils.isNotEmpty(selectSql.getFatherJobId())) {
engineEntity = getTaskStatus(selectSql.getFatherJobId());
} else {
engineEntity = getTaskStatus(jobId);
}
if (engineEntity == null) {
return result;
}
Integer status = TaskStatus.getShowStatus(engineEntity.getStatus());
result.setStatus(status);
if (buildLogsWithCheckTaskStatus(selectSql, tenantId, result, StringUtils.isNotEmpty(selectSql.getFatherJobId()) ? selectSql.getFatherJobId() : jobId, engineEntity, status)) {
return result;
}
// update time
batchSelectSqlService.updateGmtModify(jobId, tenantId);
return result;
}
use of com.dtstack.taier.develop.dto.devlop.ExecuteResultVO in project Taier by DTStack.
the class BatchJobService method startSqlImmediately.
/**
* 运行SQL任务
* @param userId
* @param tenantId
* @param taskId
* @param uniqueKey
* @param sql
* @param taskVariables
* @param dtToken
* @param isCheckDDL
* @param isRoot
* @param isEnd 是否是当前session最后一条sql
* @return
*/
public ExecuteResultVO startSqlImmediately(Long userId, Long tenantId, Long taskId, String uniqueKey, String sql, List<Map> taskVariables, String dtToken, Integer isCheckDDL, Boolean isRoot, Boolean isEnd) {
final User user = userService.getById(userId);
dtToken = String.format("%s;dt_user_id=%s;dt_username=%s;", dtToken, user.getId(), user.getUserName());
ExecuteResultVO result = new ExecuteResultVO();
try {
final BatchTask task = batchTaskService.getOneWithError(taskId);
result.setTaskType(task.getTaskType());
// 真正运行的SQL是页面传入的SQL
task.setSqlText(sql);
// 将SQL中的 系统参数和自定义参数 转换为DTO对象
List<BatchParamDTO> batchParamDTOS = this.batchTaskParamService.paramResolver(taskVariables);
final List<BatchTaskParam> params = this.batchTaskParamService.convertParam(batchParamDTOS);
List<BatchTaskParamShade> taskParamsToReplace = this.batchTaskParamService.convertShade(params);
ParamTaskAction paramTaskAction = getParamTaskAction(task, userId, taskParamsToReplace);
ParamActionExt paramActionExt = actionService.paramActionExt(paramTaskAction.getBatchTask(), paramTaskAction.getJobId(), paramTaskAction.getFlowJobId());
sql = paramActionExt.getSqlText();
String jobId = paramActionExt.getJobId();
task.setTaskParams(paramActionExt.getTaskParams());
IBatchJobExeService batchJobService = this.multiEngineServiceFactory.getBatchJobExeService(task.getTaskType());
result = batchJobService.startSqlImmediately(userId, tenantId, uniqueKey, taskId, sql, isRoot, task, dtToken, isEnd, jobId);
} catch (Exception e) {
LOGGER.warn("startSqlImmediately-->", e);
result.setMsg(e.getMessage());
result.setStatus(TaskStatus.FAILED.getStatus());
result.setSqlText(sql);
return result;
}
return result;
}
use of com.dtstack.taier.develop.dto.devlop.ExecuteResultVO in project Taier by DTStack.
the class BatchHadoopSelectSqlService method selectData.
/**
* 从临时表查询数据
* @param batchTask
* @param selectSql
* @param tenantId
* @param tenantId
* @param userId
* @param isRoot
* @param taskType
* @return
* @throws Exception
*/
@Override
public ExecuteResultVO selectData(BatchTask batchTask, BatchSelectSql selectSql, Long tenantId, Long userId, Boolean isRoot, Integer taskType) throws Exception {
String jobId = selectSql.getJobId();
ExecuteResultVO result = new ExecuteResultVO(jobId);
if (selectSql.getIsSelectSql() == TempJobType.SIMPLE_SELECT.getType()) {
result.setResult(queryData(tenantId, selectSql.getSqlText(), taskType));
result.setSqlText(selectSql.getSqlText());
} else {
ActionJobEntityVO engineEntity = null;
// 高级运行的临时表记录和发送到engine的jobId不是同一条记录
if (StringUtils.isNotEmpty(selectSql.getFatherJobId())) {
engineEntity = getTaskStatus(selectSql.getFatherJobId());
} else {
engineEntity = getTaskStatus(jobId);
}
if (engineEntity == null) {
return result;
}
Integer status = TaskStatus.getShowStatus(engineEntity.getStatus());
result.setStatus(status);
if (buildDataWithCheckTaskStatus(selectSql, tenantId, result, status)) {
return result;
}
// update time
batchSelectSqlService.updateGmtModify(jobId, tenantId);
}
return result;
}
use of com.dtstack.taier.develop.dto.devlop.ExecuteResultVO in project Taier by DTStack.
the class BatchHadoopSelectSqlService method selectStatus.
/**
* 获取sql 执行结果
* @param task
* @param selectSql
* @param tenantId
* @param userId
* @param isRoot
* @param taskType
* @return
*/
@Override
public ExecuteResultVO selectStatus(BatchTask task, BatchSelectSql selectSql, Long tenantId, Long userId, Boolean isRoot, Integer taskType) {
ExecuteResultVO executeResultVO = new ExecuteResultVO(selectSql.getJobId());
executeResultVO.setStatus(getExecuteSqlStatus(selectSql));
return executeResultVO;
}
use of com.dtstack.taier.develop.dto.devlop.ExecuteResultVO in project Taier by DTStack.
the class BatchSparkHiveSqlExeService method simpleQuery.
/**
* 简单查询结果
*
* @param tenantId
* @param parseResult
* @param currentDb
* @param tenantId
* @param userId
* @param scheduleJobType
* @return
*/
protected ExecuteResultVO<List<Object>> simpleQuery(Long tenantId, ParseResult parseResult, String currentDb, Long userId, EScheduleJobType scheduleJobType) {
ExecuteResultVO<List<Object>> result = new ExecuteResultVO<>();
Matcher matcher = SIMPLE_QUERY_PATTERN.matcher(parseResult.getStandardSql());
if (matcher.find()) {
String tableName = parseResult.getMainTable().getName();
// 这里增加一条记录,保证简单查询sql也能下载数据
String jobId = UUID.randomUUID().toString();
String parseColumnsString = "{}";
selectSqlService.addSelectSql(jobId, tableName, TempJobType.SIMPLE_SELECT.getType(), tenantId, parseResult.getStandardSql(), userId, parseColumnsString, scheduleJobType.getType());
result.setJobId(jobId);
result.setContinue(false);
} else {
try {
List<List<Object>> executeResult = jdbcServiceImpl.executeQuery(tenantId, null, scheduleJobType, currentDb.toLowerCase(), parseResult.getStandardSql());
batchSqlExeService.dealResultDoubleList(executeResult);
result.setStatus(TaskStatus.FINISHED.getStatus());
result.setResult(executeResult);
} catch (Exception e) {
LOGGER.error("", e);
result.setStatus(TaskStatus.FAILED.getStatus());
result.setMsg(e.getMessage());
}
result.setContinue(false);
}
return result;
}
Aggregations