Views provide a structured way to organize and manage data, but they are also highly customizable. Within the Catalog Builder, the Schema on the right-hand side offers a range of options to edit and refine your View YAML.
These customizations allow you to improve usability, enhance data clarity, and provide stakeholders with flexible analysis options—all without writing additional SQL.
Schema
The schema displays a list of available customization options you can use in the view YAML file. We've broken these down into:
- Descriptive fields
- Source configuration
- Caching
- Fields and field formatting
- Joins with other views
Descriptive fields
| Field name | Description |
|---|
| name | The name of the view. This must be unique within the catalog. Defaults to the file name. Optional. |
| label | A user-friendly label for the view. This is what is displayed in the UI, and defaults to the name. Optional. |
| description | A description of the view. Optional. |
Extend field
| Field name | Description |
|---|
| extends | Specify another view file to extend with a different name, modified properties, or additional or modified fields. Optional. |
| extends.path | Path to the view file to extend. |
| extends.view | Name of the view to extend (only relevant for LookML views). |
| extends.omit_properties | Any properties from the base view to omit from the new view. Optional. |
| extends.omit_fields | Any fields from the base view to omit from the new view (reference fields by name). Optional. |
| extends.omit_joins | Any joins from the base view to omit from the new view (reference joins by view name). Optional. |
Source configuration
| Field name | Description |
|---|
| source | This details the query or queries that need to be run in order to populate the view. |
| source.type | This can be either "query" (default) or "table". Optional. |
| source.connection | The connection key to use when running the query (or null to use DuckDB). This must be a connection that is available in the catalog. |
| source.table | The table for the view source. This is only supported for "type: table". |
| source.query | The SQL query to run in order to populate the view. This is defined in the dialect of the database. This is only supported for "type: query". |
| source.dependencies | A list of cells that are dependencies of this view. This is only supported for "type: query". Optional. |
| source.dependencies[*].name | The name of the cell. Must be unique with the dependency list. |
| source.dependencies[*].query | The SQL or Python query that is run in order to populate the cell. |
| source.dependencies[*].language | The type of the cell. This can be one of sql or python. Optional. |
| source.dependencies[*].connection | The connection key to use when running the query (or null to use DuckDB). This must be a connection that is available in the catalog. This is ignored for Python cells. Defaults to the connection of the view. Optional. |
Caching
| Field name | Description |
|---|
| caching | Caching settings for source dependencies attached to a connection. Optional. |
| caching.duration | How long source dependency results are cached (in seconds). |
| caching.schedule | A cron expression for the source dependency refresh schedule. This value may need to be enclosed in single quotation marks. Optional. |
| caching.wait_for_cache | Whether cells should wait for view caches to exist instead of querying the connection directly while caches are being generated (default: false). Optional. |
See here for details and examples related to the fields property.
Joins with other views
| Field name | Description |
|---|
| joins | A list of possible joins from this view to other views in the catalog. Optional. |
| joins[*].view | The name of the view that is being joined to this view. |
| joins[*].constraint | The condition that the join is made on. |
| joins[*].relationship | The relationship between this view and the joined view. This can be one of \one_to_one\, \one_to_many\, \many_to_one\ or \many_to_many\. |
| joins[*].type | The type of join. This can be one of \inner\, \left\, \right\, or \full\. Default is \left\. Optional. |