Bonnard Docs

Types

The 6 dimension types for categorizing and filtering data.

Overview

Dimensions define the attributes used to group and filter data. Choose the appropriate type based on the data characteristics.

Dimension Types

string

Text values for categorization.

- name: status
  type: string
  sql: status

- name: full_name
  type: string
  sql: "CONCAT(first_name, ' ', last_name)"

number

Numeric values (not aggregated).

- name: quantity
  type: number
  sql: quantity

- name: price
  type: number
  sql: unit_price

boolean

True/false values.

- name: is_active
  type: boolean
  sql: is_active

- name: has_orders
  type: boolean
  sql: "order_count > 0"

time

Date and timestamp values (enables time-based analysis).

- name: created_at
  type: time
  sql: created_at

- name: order_date
  type: time
  sql: DATE(ordered_at)

geo

Geographic coordinates (latitude/longitude).

- name: location
  type: geo
  latitude:
    sql: lat
  longitude:
    sql: lng

switch

Dimension with predefined set of values.

- name: status_label
  type: switch
  sql: status
  case:
    when:
      - sql: "\{CUBE\}.status = 'active'"
        label: Active
      - sql: "\{CUBE\}.status = 'inactive'"
        label: Inactive
    else:
      label: Unknown

Type Selection Guide

DataTypeExample
Categories, names, IDsstringstatus, country, user_id
Prices, quantitiesnumberprice, quantity, score
Flags, togglesbooleanis_active, has_subscription
Dates, timestampstimecreated_at, order_date
Coordinatesgeolocation, delivery_point
Enumerated valuesswitchstatus_label, tier_name

See Also

  • cubes.dimensions
  • cubes.dimensions.primary-key
  • cubes.dimensions.time