Segments
You can use thesegments parameter within cubes to define segments.
Segments are predefined filters. You can use segments to define complex filtering logic in SQL.
For example, users for one particular city can be treated as a segment:
OR logic:
Parameters
name
The name parameter serves as the identifier of a segment. It must be unique
among all segments, dimensions, and measures within a cube and follow the
naming conventions.
description
This parameter provides a human-readable description of a segment.
When applicable, it will be displayed in Playground and exposed
to data consumers via APIs and integrations.
public
The public parameter is used to manage the visibility of a segment. Valid
values for public are true and false. When set to false, this segment
cannot be queried through the API. Defaults to true.
sql
The sql parameter defines how a segment would filter out a subset of data. It
takes any SQL expression that would be valid within a WHERE statement.
Segments vs Dimension Filters
As segments are simply predefined filters, it can be difficult to determine when to use segments instead of filters on dimensions. Let’s consider an example:users.location filter value can change a lot for user queries and
users.sf_users segment won’t be used much in this case.
A good candidate case for a segment is when you have a complex filtering
expression which can be reused for a lot of user queries. For example: