Search in sources :

Example 11 with Output

use of io.dingodb.exec.base.Output in project dingo by dingodb.

the class DingoJobVisitor method visit.

@Override
public Collection<Output> visit(@Nonnull DingoAggregate rel) {
    Collection<Output> inputs = dingo(rel.getInput()).accept(this);
    List<Output> outputs = new LinkedList<>();
    for (Output input : inputs) {
        Operator operator = new AggregateOperator(rel.getKeys(), rel.getAggList());
        Task task = input.getTask();
        operator.setId(idGenerator.get());
        task.putOperator(operator);
        input.setLink(operator.getInput(0));
        outputs.addAll(operator.getOutputs());
    }
    return outputs;
}
Also used : SumUpOperator(io.dingodb.exec.operator.SumUpOperator) AggregateOperator(io.dingodb.exec.operator.AggregateOperator) SortOperator(io.dingodb.exec.operator.SortOperator) RootOperator(io.dingodb.exec.operator.RootOperator) PartScanOperator(io.dingodb.exec.operator.PartScanOperator) SendOperator(io.dingodb.exec.operator.SendOperator) ReceiveOperator(io.dingodb.exec.operator.ReceiveOperator) ProjectOperator(io.dingodb.exec.operator.ProjectOperator) ValuesOperator(io.dingodb.exec.operator.ValuesOperator) PartUpdateOperator(io.dingodb.exec.operator.PartUpdateOperator) ReduceOperator(io.dingodb.exec.operator.ReduceOperator) Operator(io.dingodb.exec.base.Operator) GetByKeysOperator(io.dingodb.exec.operator.GetByKeysOperator) PartitionOperator(io.dingodb.exec.operator.PartitionOperator) PartDeleteOperator(io.dingodb.exec.operator.PartDeleteOperator) PartInsertOperator(io.dingodb.exec.operator.PartInsertOperator) CoalesceOperator(io.dingodb.exec.operator.CoalesceOperator) Task(io.dingodb.exec.base.Task) Output(io.dingodb.exec.base.Output) AggregateOperator(io.dingodb.exec.operator.AggregateOperator) LinkedList(java.util.LinkedList)

Example 12 with Output

use of io.dingodb.exec.base.Output in project dingo by dingodb.

the class DingoJobVisitor method visit.

@Override
public Collection<Output> visit(@Nonnull DingoProject rel) {
    Collection<Output> inputs = dingo(rel.getInput()).accept(this);
    List<Output> outputs = new ArrayList<>(inputs.size());
    for (Output input : inputs) {
        Operator operator = new ProjectOperator(RexConverter.toString(rel.getProjects()), TupleSchema.fromRelDataType(rel.getInput().getRowType()));
        Task task = input.getTask();
        operator.setId(idGenerator.get());
        task.putOperator(operator);
        input.setLink(operator.getInput(0));
        operator.getSoleOutput().copyHint(input);
        outputs.addAll(operator.getOutputs());
    }
    return outputs;
}
Also used : SumUpOperator(io.dingodb.exec.operator.SumUpOperator) AggregateOperator(io.dingodb.exec.operator.AggregateOperator) SortOperator(io.dingodb.exec.operator.SortOperator) RootOperator(io.dingodb.exec.operator.RootOperator) PartScanOperator(io.dingodb.exec.operator.PartScanOperator) SendOperator(io.dingodb.exec.operator.SendOperator) ReceiveOperator(io.dingodb.exec.operator.ReceiveOperator) ProjectOperator(io.dingodb.exec.operator.ProjectOperator) ValuesOperator(io.dingodb.exec.operator.ValuesOperator) PartUpdateOperator(io.dingodb.exec.operator.PartUpdateOperator) ReduceOperator(io.dingodb.exec.operator.ReduceOperator) Operator(io.dingodb.exec.base.Operator) GetByKeysOperator(io.dingodb.exec.operator.GetByKeysOperator) PartitionOperator(io.dingodb.exec.operator.PartitionOperator) PartDeleteOperator(io.dingodb.exec.operator.PartDeleteOperator) PartInsertOperator(io.dingodb.exec.operator.PartInsertOperator) CoalesceOperator(io.dingodb.exec.operator.CoalesceOperator) Task(io.dingodb.exec.base.Task) ProjectOperator(io.dingodb.exec.operator.ProjectOperator) Output(io.dingodb.exec.base.Output) ArrayList(java.util.ArrayList)

Example 13 with Output

use of io.dingodb.exec.base.Output in project dingo by dingodb.

the class PartitionOperator method createOutputs.

public void createOutputs(String tableName, @Nonnull Map<String, Location> partLocations) {
    outputs = new HashMap<>(partLocations.size());
    for (Map.Entry<String, Location> partLocation : partLocations.entrySet()) {
        OutputHint hint = OutputHint.of(tableName, partLocation.getKey());
        hint.setLocation(partLocation.getValue());
        Output output = OutputIml.of(this);
        output.setHint(hint);
        outputs.put(partLocation.getKey(), output);
    }
}
Also used : OutputHint(io.dingodb.exec.base.OutputHint) Output(io.dingodb.exec.base.Output) HashMap(java.util.HashMap) Map(java.util.Map) Location(io.dingodb.meta.Location)

Aggregations

Output (io.dingodb.exec.base.Output)13 Task (io.dingodb.exec.base.Task)12 GetByKeysOperator (io.dingodb.exec.operator.GetByKeysOperator)7 PartScanOperator (io.dingodb.exec.operator.PartScanOperator)7 PartitionOperator (io.dingodb.exec.operator.PartitionOperator)7 ReceiveOperator (io.dingodb.exec.operator.ReceiveOperator)7 RootOperator (io.dingodb.exec.operator.RootOperator)7 SendOperator (io.dingodb.exec.operator.SendOperator)7 ValuesOperator (io.dingodb.exec.operator.ValuesOperator)7 LinkedList (java.util.LinkedList)7 Operator (io.dingodb.exec.base.Operator)6 AggregateOperator (io.dingodb.exec.operator.AggregateOperator)6 CoalesceOperator (io.dingodb.exec.operator.CoalesceOperator)6 PartDeleteOperator (io.dingodb.exec.operator.PartDeleteOperator)6 PartInsertOperator (io.dingodb.exec.operator.PartInsertOperator)6 PartUpdateOperator (io.dingodb.exec.operator.PartUpdateOperator)6 ProjectOperator (io.dingodb.exec.operator.ProjectOperator)6 ReduceOperator (io.dingodb.exec.operator.ReduceOperator)6 SortOperator (io.dingodb.exec.operator.SortOperator)6 SumUpOperator (io.dingodb.exec.operator.SumUpOperator)6