SummingMergeTree
SummingMergeTree automatically sums numeric columns when merging rows with the same ORDER BY key. It's a simpler alternative to AggregatingMergeTree when you only need sum aggregations.
When to Use
- Simple counters and metrics (page views, clicks, totals)
- Incrementing values by key
- When you only need SUM operations (not MAX, MIN, etc.)
Usage
import { OlapTable, ClickHouseEngines } from "@514labs/moose-lib"; interface DailyMetrics { date: Date; page: string; views: number; clicks: number; revenue: number;} const metrics = new OlapTable<DailyMetrics>("daily_metrics", { engine: ClickHouseEngines.SummingMergeTree, orderByFields: ["date", "page"]});Configuration Options
| Option | Type | Description |
|---|---|---|
orderByFields | string[] | Columns that define the merge key (required) |
columns | string[] | Optional allowlist of numeric columns to sum (defaults to all numeric columns) |
Example: Choosing Columns to Sum
By default, all numeric columns are summed. You can restrict which columns are summed:
const metrics = new OlapTable<DailyMetrics>("daily_metrics", { engine: ClickHouseEngines.SummingMergeTree, orderByFields: ["date", "page"], columns: ["views", "clicks"] // Only sum these columns});Sum-only limitation
SummingMergeTree only supports summation. For other aggregations (max, min, count distinct), use AggregatingMergeTree instead.
See Also
- AggregatingMergeTree — For non-sum aggregations / aggregate states
- Aggregate Types —
SimpleAggregateFunctionandAggregateFunctionmodeling - Replicated Engines — For high availability