Skip to main content
This parameter defines a parent-child relationship between dimensions, which is used to represent nested fields such as those produced by denesting JSON or STRUCT columns from your database schema. Children of a parent dimension display below the parent in the field browser, similar to fields grouped with group_label. By default, a child’s label is prefixed with its parent’s label — see skip_parent_label to change this behavior. Omni automatically generates parent_field when you:
  • Use the Create fields from JSON functionality in the model IDE, or
  • Add fields from STRUCT columns in your database schema.

Syntax

<dimension_name>:
  parent_field: <parent_dimension_name>

Properties

dimension_name
object
The name of the child dimension. Dimension names must:
  • Be unique within the view
  • Start with a letter
  • Contain only alphanumeric characters and underscores

Example

Consider a nested JSON order_info field that contains status, email, and state attributes:
dimensions:
  order_info:
    sql: ${TABLE}.order_info

  order_info_status:
    sql: ${order_info}:status::STRING
    parent_field: order_info

  order_info_email:
    sql: ${order_info}:email::STRING
    parent_field: order_info

  order_info_state:
    sql: ${order_info}:state::STRING
    parent_field: order_info
In the field browser, order_info_status, order_info_email, and order_info_state display nested under order_info. By default, their labels are prefixed with Order Info — for example, Order Info Status.