Search in sources :

Example 6 with ColumnGroup

use of com.alibaba.otter.shared.common.model.config.data.ColumnGroup in project otter by alibaba.

the class AddColumnPairGroup method execute.

public void execute(@Param("dataMediaPairId") Long dataMediaPairId, @Param("pipelineId") Long pipelineId, @Param("channelId") Long channelId, @Param("sourceMediaId") Long sourceMediaId, @Param("targetMediaId") Long targetMediaId, Context context) throws Exception {
    List<ColumnPair> columnPairs = dataColumnPairService.listByDataMediaPairId(dataMediaPairId);
    if (CollectionUtils.isEmpty(columnPairs)) {
        columnPairs.addAll(buildColumnPairFromDataMedia(dataMediaPairId, sourceMediaId, targetMediaId));
    } else {
        DataMediaPair dataMediaPair = dataMediaPairService.findById(dataMediaPairId);
        if (dataMediaPair.getColumnPairMode().isExclude()) {
            List<ColumnPair> allColumnPairs = buildColumnPairFromDataMedia(dataMediaPairId, sourceMediaId, targetMediaId);
            // 如果是exclude模式,排除掉
            allColumnPairs.removeAll(columnPairs);
            columnPairs = allColumnPairs;
        }
    }
    List<ColumnGroup> columnGroups = dataColumnPairGroupService.listByDataMediaPairId(dataMediaPairId);
    List<ColumnPair> columnPairGroup = new ArrayList<ColumnPair>();
    if (CollectionUtils.isNotEmpty(columnGroups)) {
        for (ColumnGroup columnGroup : columnGroups) {
            List<ColumnPair> columnPairTemp = new ArrayList<ColumnPair>();
            columnPairGroup = columnGroup.getColumnPairs();
            for (ColumnPair columnPair : columnPairGroup) {
                for (ColumnPair subColumnPair : columnPairs) {
                    if (columnPair.equals(subColumnPair)) {
                        columnPairTemp.add(subColumnPair);
                    }
                }
            }
            // 如果是多个Group,需要深度复制columnPair,每个Group需要复制一个
            columnPairs.removeAll(columnPairTemp);
        }
    }
    // 未加入group的columnPair定义
    context.put("preColumnPairs", columnPairs);
    // 当前group的columnPair定义
    context.put("columnPairs", columnPairGroup);
    context.put("dataMediaPairId", dataMediaPairId);
    context.put("channelId", channelId);
    context.put("pipelineId", pipelineId);
}
Also used : ColumnPair(com.alibaba.otter.shared.common.model.config.data.ColumnPair) DataMediaPair(com.alibaba.otter.shared.common.model.config.data.DataMediaPair) ArrayList(java.util.ArrayList) ColumnGroup(com.alibaba.otter.shared.common.model.config.data.ColumnGroup)

Example 7 with ColumnGroup

use of com.alibaba.otter.shared.common.model.config.data.ColumnGroup in project otter by alibaba.

the class DataMediaPairInfo method execute.

public void execute(@Param("dataMediaPairId") Long dataMediaPairId, Context context) throws Exception {
    DataMediaPair dataMediaPair = dataMediaPairService.findById(dataMediaPairId);
    Channel channel = channelService.findByPipelineId(dataMediaPair.getPipelineId());
    List<ColumnPair> columnPairs = dataMediaPair.getColumnPairs();
    List<ColumnGroup> columnGroups = dataMediaPair.getColumnGroups();
    // 暂时策略,只拿出list的第一个Group
    ColumnGroup columnGroup = new ColumnGroup();
    if (!CollectionUtils.isEmpty(columnGroups)) {
        columnGroup = columnGroups.get(0);
    }
    context.put("dataMediaPair", dataMediaPair);
    context.put("columnGroup", columnGroup);
    context.put("columnPairs", columnPairs);
    context.put("channelId", channel.getId());
}
Also used : ColumnPair(com.alibaba.otter.shared.common.model.config.data.ColumnPair) DataMediaPair(com.alibaba.otter.shared.common.model.config.data.DataMediaPair) Channel(com.alibaba.otter.shared.common.model.config.channel.Channel) ColumnGroup(com.alibaba.otter.shared.common.model.config.data.ColumnGroup)

Aggregations

ColumnGroup (com.alibaba.otter.shared.common.model.config.data.ColumnGroup)7 ArrayList (java.util.ArrayList)6 ColumnPair (com.alibaba.otter.shared.common.model.config.data.ColumnPair)5 DataMediaPair (com.alibaba.otter.shared.common.model.config.data.DataMediaPair)4 List (java.util.List)3 HashMap (java.util.HashMap)2 TypeReference (com.alibaba.fastjson.TypeReference)1 ManagerException (com.alibaba.otter.manager.biz.common.exceptions.ManagerException)1 RepeatConfigureException (com.alibaba.otter.manager.biz.common.exceptions.RepeatConfigureException)1 DataColumnPairGroupDO (com.alibaba.otter.manager.biz.config.datacolumnpair.dal.dataobject.DataColumnPairGroupDO)1 DataMediaPairDO (com.alibaba.otter.manager.biz.config.datamediapair.dal.dataobject.DataMediaPairDO)1 Channel (com.alibaba.otter.shared.common.model.config.channel.Channel)1 Column (com.alibaba.otter.shared.common.model.config.data.Column)1 Pipeline (com.alibaba.otter.shared.common.model.config.pipeline.Pipeline)1 EventData (com.alibaba.otter.shared.etl.model.EventData)1