-- { echoOn } explain pipeline select * from (select * from numbers(1e8) group by number) group by number; (Expression) ExpressionTransform × 16 (Aggregating) Resize 16 → 16 AggregatingTransform × 16 StrictResize 16 → 16 (Expression) ExpressionTransform × 16 (Aggregating) Resize 1 → 16 AggregatingTransform (Expression) ExpressionTransform (ReadFromStorage) Limit Numbers 0 → 1 explain pipeline select * from (select * from numbers_mt(1e8) group by number) group by number; (Expression) ExpressionTransform × 16 (Aggregating) Resize 16 → 16 AggregatingTransform × 16 StrictResize 16 → 16 (Expression) ExpressionTransform × 16 (Aggregating) Resize 16 → 16 AggregatingTransform × 16 (Expression) ExpressionTransform × 16 (ReadFromStorage) NumbersMt × 16 0 → 1 explain pipeline select * from (select * from numbers_mt(1e8) group by number) order by number; (Expression) ExpressionTransform (Sorting) MergingSortedTransform 16 → 1 MergeSortingTransform × 16 LimitsCheckingTransform × 16 PartialSortingTransform × 16 (Expression) ExpressionTransform × 16 (Aggregating) Resize 16 → 16 AggregatingTransform × 16 (Expression) ExpressionTransform × 16 (ReadFromStorage) NumbersMt × 16 0 → 1 explain pipeline select number from remote('127.0.0.{1,2,3}', system, numbers_mt) group by number settings distributed_aggregation_memory_efficient = 1; (Expression) ExpressionTransform × 16 (MergingAggregated) Resize 1 → 16 SortingAggregatedTransform 16 → 1 MergingAggregatedBucketTransform × 16 Resize 1 → 16 GroupingAggregatedTransform 3 → 1 (Union) (Aggregating) Resize 16 → 1 AggregatingTransform × 16 (Expression) ExpressionTransform × 16 (ReadFromStorage) Numbers × 16 0 → 1 (ReadFromRemote) explain pipeline select number from remote('127.0.0.{1,2,3}', system, numbers_mt) group by number settings distributed_aggregation_memory_efficient = 0; (Expression) ExpressionTransform × 16 (MergingAggregated) Resize 1 → 16 MergingAggregatedTransform Resize 18 → 1 (Union) (Aggregating) Resize 16 → 16 AggregatingTransform × 16 (Expression) ExpressionTransform × 16 (ReadFromStorage) Numbers × 16 0 → 1 (ReadFromRemote) -- { echoOn } explain pipeline SELECT k1, k3, sum(value) v FROM remote('127.0.0.{1,2}', currentDatabase(), proj_agg_02343) GROUP BY k1, k3 SETTINGS distributed_aggregation_memory_efficient = 0; (Expression) ExpressionTransform × 16 (MergingAggregated) Resize 1 → 16 MergingAggregatedTransform Resize 17 → 1 (Union) (Aggregating) Resize 1 → 16 AggregatingTransform (Expression) ExpressionTransform (ReadFromMergeTree) MergeTreeInOrder 0 → 1 (ReadFromRemote) explain pipeline SELECT k1, k3, sum(value) v FROM remote('127.0.0.{1,2}', currentDatabase(), proj_agg_02343) GROUP BY k1, k3 SETTINGS distributed_aggregation_memory_efficient = 1; (Expression) ExpressionTransform × 16 (MergingAggregated) Resize 1 → 16 SortingAggregatedTransform 16 → 1 MergingAggregatedBucketTransform × 16 Resize 1 → 16 GroupingAggregatedTransform 2 → 1 (Union) (Aggregating) AggregatingTransform (Expression) ExpressionTransform (ReadFromMergeTree) MergeTreeInOrder 0 → 1 (ReadFromRemote) -- { echoOn } explain pipeline select a from remote('127.0.0.{1,2}', currentDatabase(), dist_t) group by a settings max_threads = 2, distributed_aggregation_memory_efficient = 1; (Expression) ExpressionTransform × 2 (MergingAggregated) Resize 1 → 2 SortingAggregatedTransform 2 → 1 MergingAggregatedBucketTransform × 2 Resize 1 → 2 GroupingAggregatedTransform 2 → 1 (Union) (MergingAggregated) SortingAggregatedTransform 2 → 1 MergingAggregatedBucketTransform × 2 Resize 1 → 2 GroupingAggregatedTransform 2 → 1 (Union) (Aggregating) Resize 2 → 1 AggregatingTransform × 2 StrictResize 2 → 2 (Expression) ExpressionTransform × 2 (ReadFromMergeTree) MergeTreeThread × 2 0 → 1 (ReadFromRemote) (ReadFromRemote)