Skip to content

Latest commit

 

History

History
69 lines (59 loc) · 2.21 KB

NOTES.md

File metadata and controls

69 lines (59 loc) · 2.21 KB

Notes on development, possible changes, possible features

API definition:

	reductio <-- crossfilter (optional?)
		dimension(accessor | property, type)
			group(accessor | property, type)
				accessor (returns the accessor)
				count
				sum
				avg <-- change to 'average'?
				min <-- change to 'minimum'?
				max <-- change to 'maximum'?
				median
				sumOfSq <-- name change?
				std <-- name change?
				histogram(bins, value) ??
					x histogramBins
					x histogramValue
				value
					...
				filter
				nest
				alias
				aliasProp <-- name change? Or just get rid of it - efficiency issues
				uniqueBy (formerly exception) / distinct?
					count
					sum
			groupAll
				...
			accessor (returns the accessor)
			groups - array of current groups on the dimension
		dimensions - array of current dimensions

Checks on dimension accessors for basic natural-ordered-ness. More less just checking if it always returns values of the same type for different types of edge-case inputs (text, number, 0, Infinity, "", [], {}, undefined, null, NaN)

Dimension accessor helpers? We have some pretty complex time-dimension accessors in Palladio.

Pre-aggregation is intended to serve as a framework for thinking through a 2-stage aggregation process.

Stage 1 - Usually server-side, aggregating over all dimensions that are not relevant in the Reductio/Crossfilter and then sending to the client-side

Stage 2 - Crossfilter/Reductio client-side aggregation with pure client-side filtering and re-aggregation

The intent is to allow interactive filtering and aggregation on data sets that are too large to fit client-side. The problem is that 2-stage aggregations can be challenging.

Pre-aggregation strategies:

	count - sum a fake '1' dimension - can use the same dimension pre/post aggregation
	sum - commutative across aggregation
	avg - pure post-aggregation calculation
	min - commutative
	max - commutative
	median - ???
	sumOfSq - ???
	std - ???
	histogram - ???
	value - ???
	filter - pure push-down (need a non-closure definition syntax)
	nest - ???
	alias - pure post-aggregation calculation
	aliasProp - pure post-aggregation calculation
	exception - valueList provided, concat in aggregation ???
		count - see above?
		sum - see above?