The Problem: To use an array/multi-value field (like tags) as a dashboard filter, we currently have to UNNEST the data in the ETL layer.
On large datasets (our base table is 8.7B rows / 8.5 TB), unnesting explodes the data size exponentially. This forces us to write heavy, complex windowed Beast Modes to avoid double-counting metrics, causing dashboards to take minutes to load.
The Request: Allow Analyzer to natively handle array fields for filtering.
- Drop an array field into the Filter bar, and let users multi-select individual elements.
- Under the hood, evaluate the filter as a
CONTAINS or ARRAY_CONTAINS operation, rather than a strict string match on the whole array.
The Benefit:
- Massive Performance: Eliminates the need to artificially duplicate billions of rows just for a filter.
- Simpler Math: We can use standard
SUM and AVG instead of heavy window functions. - Storage Savings: Drastically reduces Domo storage footprints.