Search in sources :

Example 1 with BatchSysParameter

use of com.dtstack.taier.dao.domain.BatchSysParameter in project Taier by DTStack.

the class BatchTaskParamService method getTaskParam.

public List<BatchTaskParam> getTaskParam(final long taskId) {
    List<BatchTaskParam> taskParams = developTaskParamDao.listByTaskId(taskId);
    // 特殊处理 TaskParam 系统参数
    for (BatchTaskParam taskParamShade : taskParams) {
        if (!EParamType.SYS_TYPE.getType().equals(taskParamShade.getType())) {
            continue;
        }
        // 将 command 属性设置为系统表的 command
        BatchSysParameter sysParameter = batchSysParamService.getBatchSysParamByName(taskParamShade.getParamName());
        taskParamShade.setParamCommand(sysParameter.getParamCommand());
    }
    return taskParams;
}
Also used : BatchTaskParam(com.dtstack.taier.dao.domain.BatchTaskParam) BatchSysParameter(com.dtstack.taier.dao.domain.BatchSysParameter)

Example 2 with BatchSysParameter

use of com.dtstack.taier.dao.domain.BatchSysParameter in project Taier by DTStack.

the class BatchTaskParamShadeService method getTaskParam.

public List<BatchTaskParamShade> getTaskParam(long taskId) {
    List<BatchTaskParamShade> taskParamShades = developTaskParamShadeDao.listByTaskId(taskId);
    // 特殊处理 TaskParam 系统参数
    for (BatchTaskParamShade taskParamShade : taskParamShades) {
        if (EParamType.SYS_TYPE.getType() != taskParamShade.getType()) {
            continue;
        }
        // 将 command 属性设置为系统表的 command
        BatchSysParameter sysParameter = batchSysParamService.getBatchSysParamByName(taskParamShade.getParamName());
        taskParamShade.setParamCommand(sysParameter.getParamCommand());
    }
    return taskParamShades;
}
Also used : BatchTaskParamShade(com.dtstack.taier.dao.domain.BatchTaskParamShade) BatchSysParameter(com.dtstack.taier.dao.domain.BatchSysParameter)

Example 3 with BatchSysParameter

use of com.dtstack.taier.dao.domain.BatchSysParameter in project Taier by DTStack.

the class BatchTaskService method checkTrace.

private JSONObject checkTrace(final JSONObject jsonObject) {
    final JSONObject keymap = jsonObject.getJSONObject("keymap");
    final JSONArray source = keymap.getJSONArray("source");
    final JSONArray target = keymap.getJSONArray("target");
    final JSONObject sourceMap = jsonObject.getJSONObject("sourceMap");
    final Integer fromId = (Integer) sourceMap.get("sourceId");
    final JSONObject targetMap = jsonObject.getJSONObject("targetMap");
    final Integer toId = (Integer) targetMap.get("sourceId");
    final JSONObject sourceType = sourceMap.getJSONObject("type");
    final List<String> sourceTables = this.getTables(sourceType);
    final JSONObject targetType = targetMap.getJSONObject("type");
    final List<String> targetTables = this.getTables(targetType);
    final BatchDataSource fromDs = dataSourceService.getOne(fromId.longValue());
    final BatchDataSource toDs = dataSourceService.getOne(toId.longValue());
    int fromSourceType = DataSourceType.getSourceType(fromDs.getType()).getVal();
    int toSourceType = DataSourceType.getSourceType(toDs.getType()).getVal();
    if (DataSourceType.HBASE.getVal() == fromSourceType || DataSourceType.HBASE.getVal() == toSourceType) {
        return jsonObject;
    }
    // 处理分库分表的信息
    this.addSourceList(sourceMap);
    if (CollectionUtils.isNotEmpty(sourceTables)) {
        getMetaDataColumns(sourceMap, sourceTables, fromDs);
    }
    if (CollectionUtils.isNotEmpty(targetTables)) {
        getMetaDataColumns(targetMap, targetTables, toDs);
    }
    // 因为下面要对keyMap中target中的字段类型进行更新 所以遍历一次目标map 拿出字段和类型的映射
    Map<String, String> newTargetColumnTypeMap = targetMap.getJSONArray(COLUMN).stream().map(column -> (JSONObject) column).collect(Collectors.toMap(column -> column.getString(KEY), column -> column.getString(TYPE)));
    final Collection<BatchSysParameter> sysParams = this.getSysParams();
    final JSONArray newSource = new JSONArray();
    final JSONArray newTarget = new JSONArray();
    for (int i = 0; i < source.size(); ++i) {
        boolean srcTag = true;
        final JSONArray srcColumns = sourceMap.getJSONArray("column");
        if (CollectionUtils.isNotEmpty(sourceTables)) {
            int j = 0;
            final String srcColName;
            String colValue = "";
            if (!(source.get(i) instanceof JSONObject)) {
                srcColName = source.getString(i);
            } else {
                // source 可能含有系统变量
                srcColName = source.getJSONObject(i).getString("key");
                colValue = source.getJSONObject(i).getString("value");
            }
            // srcColumns 源表中的字段
            for (; j < srcColumns.size(); ++j) {
                final JSONObject srcColumn = srcColumns.getJSONObject(j);
                if (srcColumn.getString("key").equals(srcColName)) {
                    break;
                }
            }
            boolean isSysParam = false;
            for (final BatchSysParameter sysParam : sysParams) {
                if (sysParam.strIsSysParam(colValue)) {
                    isSysParam = true;
                    break;
                }
            }
            // 没有系统变量 还需要判断是否有自定义变量
            if (!isSysParam) {
                isSysParam = StringUtils.isNotBlank(colValue);
            }
            // 兼容系统变量
            if (isSysParam) {
                boolean hasThisKey = false;
                for (int k = 0; k < srcColumns.size(); ++k) {
                    final JSONObject srcColumn = srcColumns.getJSONObject(k);
                    if (srcColumn.getString("key").equals(srcColName)) {
                        hasThisKey = true;
                        break;
                    }
                }
                if (!hasThisKey) {
                    // 创建出系统变量colume
                    final JSONObject jsonColumn = new JSONObject();
                    jsonColumn.put("key", srcColName);
                    jsonColumn.put("value", colValue);
                    jsonColumn.put("type", source.getJSONObject(i).getString("type"));
                    jsonColumn.put("format", source.getJSONObject(i).getString("format"));
                    srcColumns.add(jsonColumn);
                }
            }
            if (j == srcColumns.size() && !isSysParam) {
                srcTag = false;
            }
        }
        boolean destTag = true;
        final JSONArray destColumns = targetMap.getJSONArray("column");
        if (CollectionUtils.isNotEmpty(targetTables)) {
            int k = 0;
            final String destColName;
            if (!(target.get(i) instanceof JSONObject)) {
                destColName = target.getString(i);
            } else {
                destColName = target.getJSONObject(i).getString("key");
                // 更新dest表中字段类型
                final String newType = newTargetColumnTypeMap.get(destColName);
                if (StringUtils.isNotEmpty(newType)) {
                    target.getJSONObject(i).put("type", newType);
                }
            }
            for (; k < destColumns.size(); ++k) {
                final JSONObject destColumn = destColumns.getJSONObject(k);
                if (destColumn.getString("key").equals(destColName)) {
                    break;
                }
            }
            if (k == destColumns.size()) {
                destTag = false;
            }
        }
        if (srcTag && destTag) {
            newSource.add(source.get(i));
            newTarget.add(target.get(i));
        }
    }
    keymap.put("source", newSource);
    keymap.put("target", newTarget);
    return jsonObject;
}
Also used : BatchDataSource(com.dtstack.taier.dao.domain.BatchDataSource) StringUtils(org.apache.commons.lang.StringUtils) Arrays(java.util.Arrays) SourceDTOType(com.dtstack.taier.develop.enums.develop.SourceDTOType) DependencyType(com.dtstack.taier.common.enums.DependencyType) TaskParamTemplate(com.dtstack.taier.dao.domain.TaskParamTemplate) ISourceDTO(com.dtstack.dtcenter.loader.dto.source.ISourceDTO) CatalogueType(com.dtstack.taier.common.enums.CatalogueType) Autowired(org.springframework.beans.factory.annotation.Autowired) KerberosConfigVerify(com.dtstack.taier.common.kerberos.KerberosConfigVerify) JSONPath(com.alibaba.fastjson.JSONPath) BooleanUtils(org.apache.commons.lang.BooleanUtils) SyncModel(com.dtstack.taier.develop.enums.develop.SyncModel) Matcher(java.util.regex.Matcher) ComponentService(com.dtstack.taier.scheduler.service.ComponentService) Pair(org.apache.commons.lang3.tuple.Pair) BatchReadWriteLock(com.dtstack.taier.dao.domain.BatchReadWriteLock) Map(java.util.Map) TaskCatalogueVO(com.dtstack.taier.develop.dto.devlop.TaskCatalogueVO) TaskGetNotDeleteVO(com.dtstack.taier.develop.dto.devlop.TaskGetNotDeleteVO) DevelopTaskDao(com.dtstack.taier.dao.mapper.DevelopTaskDao) ScheduleTaskShade(com.dtstack.taier.dao.domain.ScheduleTaskShade) DictType(com.dtstack.taier.common.enums.DictType) Strings(com.dtstack.taier.common.util.Strings) BatchTaskVersionDetailDTO(com.dtstack.taier.dao.dto.BatchTaskVersionDetailDTO) Resource(javax.annotation.Resource) PublishTaskStatusEnum(com.dtstack.taier.common.enums.PublishTaskStatusEnum) AllProductGlobalSearchVO(com.dtstack.taier.develop.vo.develop.query.AllProductGlobalSearchVO) Set(java.util.Set) DatasourceService(com.dtstack.taier.develop.service.datasource.impl.DatasourceService) BatchTaskVersion(com.dtstack.taier.dao.domain.BatchTaskVersion) BatchResource(com.dtstack.taier.dao.domain.BatchResource) SyncJobCheck(com.dtstack.taier.develop.utils.develop.sync.job.SyncJobCheck) ScheduleTaskVO(com.dtstack.taier.scheduler.vo.ScheduleTaskVO) TypeReference(com.alibaba.fastjson.TypeReference) SqlQueryDTO(com.dtstack.dtcenter.loader.dto.SqlQueryDTO) PageQuery(com.dtstack.taier.dao.pager.PageQuery) BatchTaskBatchVO(com.dtstack.taier.develop.dto.devlop.BatchTaskBatchVO) EScheduleStatus(com.dtstack.taier.common.enums.EScheduleStatus) ScheduleFactory(com.dtstack.taier.develop.parser.ScheduleFactory) CheckSyntaxResult(com.dtstack.taier.develop.dto.devlop.CheckSyntaxResult) LocalDateTime(java.time.LocalDateTime) EnvironmentContext(com.dtstack.taier.common.env.EnvironmentContext) TenantService(com.dtstack.taier.develop.service.console.TenantService) SimpleDateFormat(java.text.SimpleDateFormat) IClient(com.dtstack.dtcenter.loader.client.IClient) RdosDefineException(com.dtstack.taier.common.exception.RdosDefineException) MathUtil(com.dtstack.taier.pluginapi.util.MathUtil) ArrayList(java.util.ArrayList) UserDTO(com.dtstack.taier.dao.dto.UserDTO) JSONArray(com.alibaba.fastjson.JSONArray) Dict(com.dtstack.taier.dao.domain.Dict) FuncType(com.dtstack.taier.common.enums.FuncType) Tenant(com.dtstack.taier.dao.domain.Tenant) Lists(com.google.common.collect.Lists) Service(org.springframework.stereotype.Service) ClusterService(com.dtstack.taier.scheduler.service.ClusterService) DataSourceType(com.dtstack.dtcenter.loader.source.DataSourceType) TaskLockStatus(com.dtstack.taier.common.enums.TaskLockStatus) ErrorCode(com.dtstack.taier.common.exception.ErrorCode) TaskOperateType(com.dtstack.taier.develop.enums.develop.TaskOperateType) ScheduleTaskShadeDTO(com.dtstack.taier.scheduler.dto.schedule.ScheduleTaskShadeDTO) User(com.dtstack.taier.dao.domain.User) IOException(java.io.IOException) Sort(com.dtstack.taier.dao.pager.Sort) ScheduleDictService(com.dtstack.taier.scheduler.service.ScheduleDictService) File(java.io.File) BatchTaskResource(com.dtstack.taier.dao.domain.BatchTaskResource) JSON(com.alibaba.fastjson.JSON) PublicUtil(com.dtstack.taier.common.util.PublicUtil) BatchDataSource(com.dtstack.taier.dao.domain.BatchDataSource) ResourceRefType(com.dtstack.taier.common.enums.ResourceRefType) Preconditions(com.google.common.base.Preconditions) EScheduleJobType(com.dtstack.taier.common.enums.EScheduleJobType) SavaTaskDTO(com.dtstack.taier.scheduler.dto.schedule.SavaTaskDTO) UserService(com.dtstack.taier.develop.service.user.UserService) Date(java.util.Date) ListUtils(org.apache.commons.collections.ListUtils) LoggerFactory(org.slf4j.LoggerFactory) BatchTaskTask(com.dtstack.taier.dao.domain.BatchTaskTask) BatchTaskGetComponentVersionResultVO(com.dtstack.taier.develop.vo.develop.result.BatchTaskGetComponentVersionResultVO) ColumnMetaDTO(com.dtstack.dtcenter.loader.dto.ColumnMetaDTO) Base64Util(com.dtstack.taier.common.util.Base64Util) Component(com.dtstack.taier.dao.domain.Component) ScheduleCron(com.dtstack.taier.develop.parser.ScheduleCron) DateFormat(java.text.DateFormat) EDeployType(com.dtstack.taier.common.enums.EDeployType) PatternConstant(com.dtstack.taier.common.constant.PatternConstant) ESchedulePeriodType(com.dtstack.taier.develop.parser.ESchedulePeriodType) Timestamp(java.sql.Timestamp) Collection(java.util.Collection) IKerberos(com.dtstack.dtcenter.loader.client.IKerberos) ClientCache(com.dtstack.dtcenter.loader.client.ClientCache) Collectors(java.util.stream.Collectors) Sets(com.google.common.collect.Sets) TaskCheckResultVO(com.dtstack.taier.develop.dto.devlop.TaskCheckResultVO) TaskResourceParam(com.dtstack.taier.develop.dto.devlop.TaskResourceParam) Objects(java.util.Objects) List(java.util.List) BatchSysParameter(com.dtstack.taier.dao.domain.BatchSysParameter) DevelopReadWriteLockDao(com.dtstack.taier.dao.mapper.DevelopReadWriteLockDao) PostConstruct(javax.annotation.PostConstruct) Optional(java.util.Optional) JSONObject(com.alibaba.fastjson.JSONObject) PluginName(com.dtstack.taier.develop.utils.develop.sync.job.PluginName) Pattern(java.util.regex.Pattern) BatchAllProductGlobalReturnVO(com.dtstack.taier.develop.vo.develop.result.BatchAllProductGlobalReturnVO) Deleted(com.dtstack.taier.common.enums.Deleted) BeanUtils(org.springframework.beans.BeanUtils) HashMap(java.util.HashMap) BatchCatalogue(com.dtstack.taier.dao.domain.BatchCatalogue) HashSet(java.util.HashSet) TaskCreateModelType(com.dtstack.taier.develop.enums.develop.TaskCreateModelType) CollectionUtils(org.apache.commons.collections.CollectionUtils) TaskParamTemplateService(com.dtstack.taier.develop.service.task.TaskParamTemplateService) Constant(com.dtstack.taier.develop.utils.develop.common.enums.Constant) DtCenterDefException(com.dtstack.taier.common.exception.DtCenterDefException) BatchTask(com.dtstack.taier.dao.domain.BatchTask) TaskService(com.dtstack.taier.develop.service.schedule.TaskService) Logger(org.slf4j.Logger) MapUtils(org.apache.commons.collections.MapUtils) DataFilter(com.dtstack.taier.common.util.DataFilter) ReadWriteLockType(com.dtstack.taier.common.enums.ReadWriteLockType) BatchTaskDTO(com.dtstack.taier.dao.dto.BatchTaskDTO) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) Maps(com.google.common.collect.Maps) EComponentType(com.dtstack.taier.common.enums.EComponentType) ReadWriteLockVO(com.dtstack.taier.develop.dto.devlop.ReadWriteLockVO) BatchTaskParam(com.dtstack.taier.dao.domain.BatchTaskParam) Comparator(java.util.Comparator) ESubmitStatus(com.dtstack.taier.common.enums.ESubmitStatus) JsonUtils(com.dtstack.taier.common.util.JsonUtils) Transactional(org.springframework.transaction.annotation.Transactional) JSONObject(com.alibaba.fastjson.JSONObject) JSONArray(com.alibaba.fastjson.JSONArray) BatchSysParameter(com.dtstack.taier.dao.domain.BatchSysParameter)

Example 4 with BatchSysParameter

use of com.dtstack.taier.dao.domain.BatchSysParameter in project Taier by DTStack.

the class BatchSysParamService method loadSystemParam.

@Forbidden
public void loadSystemParam() {
    cache = Maps.newHashMap();
    List<BatchSysParameter> sysParamList = developSysParamDao.listAll();
    for (BatchSysParameter tmp : sysParamList) {
        cache.put(tmp.getParamName(), tmp);
    }
}
Also used : BatchSysParameter(com.dtstack.taier.dao.domain.BatchSysParameter) Forbidden(com.dtstack.taier.common.annotation.Forbidden)

Example 5 with BatchSysParameter

use of com.dtstack.taier.dao.domain.BatchSysParameter in project Taier by DTStack.

the class JobParamReplace method convertParam.

public String convertParam(Integer type, String paramName, String paramCommand, String cycTime) {
    String command = null;
    if (type == EParamType.SYS_TYPE.getType()) {
        BatchSysParameter sysParameter = batchSysParamService.getBatchSysParamByName(paramName);
        command = sysParameter.getParamCommand();
        // 特殊处理 bdp.system.currenttime
        if ("bdp.system.runtime".equals(sysParameter.getParamName())) {
            return TimeParamOperator.dealCustomizeTimeOperator(command, cycTime);
        }
    } else {
        command = paramCommand;
        return TimeParamOperator.dealCustomizeTimeOperator(command, cycTime);
    }
    command = TimeParamOperator.transform(command, cycTime);
    return command;
}
Also used : BatchSysParameter(com.dtstack.taier.dao.domain.BatchSysParameter)

Aggregations

BatchSysParameter (com.dtstack.taier.dao.domain.BatchSysParameter)5 JSON (com.alibaba.fastjson.JSON)1 JSONArray (com.alibaba.fastjson.JSONArray)1 JSONObject (com.alibaba.fastjson.JSONObject)1 JSONPath (com.alibaba.fastjson.JSONPath)1 TypeReference (com.alibaba.fastjson.TypeReference)1 ClientCache (com.dtstack.dtcenter.loader.client.ClientCache)1 IClient (com.dtstack.dtcenter.loader.client.IClient)1 IKerberos (com.dtstack.dtcenter.loader.client.IKerberos)1 ColumnMetaDTO (com.dtstack.dtcenter.loader.dto.ColumnMetaDTO)1 SqlQueryDTO (com.dtstack.dtcenter.loader.dto.SqlQueryDTO)1 ISourceDTO (com.dtstack.dtcenter.loader.dto.source.ISourceDTO)1 DataSourceType (com.dtstack.dtcenter.loader.source.DataSourceType)1 Forbidden (com.dtstack.taier.common.annotation.Forbidden)1 PatternConstant (com.dtstack.taier.common.constant.PatternConstant)1 CatalogueType (com.dtstack.taier.common.enums.CatalogueType)1 Deleted (com.dtstack.taier.common.enums.Deleted)1 DependencyType (com.dtstack.taier.common.enums.DependencyType)1 DictType (com.dtstack.taier.common.enums.DictType)1 EComponentType (com.dtstack.taier.common.enums.EComponentType)1