Introduction to Parameters

Parameters can be used to create global constants and to create parameterized dynamic datasets.

A parameter can be used with a $ sign, like $status in this parameterized filtered metric:

orders.count FILTER (WHERE orders.status = $status)

Parameters are defined either per workspace, or per dynamic dataset. The definition includes parameter name and default value.

Parameterized Dynamic Datasets

Dynamic datasets can include calculations with parameters.

The value of the parameter when in a user query is by this order:

  1. Value set in real-time by user with a SET command.
  2. Default value set in the dynamic dataset
  3. Default value set in the workspace

A dynamic dataset parameter default value can override a workspace parameter of the same name.

Deploying to VIEWs

When a dynamic dataset is deployed as a Snowflake VIEW, parameters can be set using the Snowflake SET statement:

-- run in Snowflake, on a view that uses the $status parameter

SET status='O';
SELECT * FROM [Honeydew Dataset Deployed View];

Deploying to TABLEs

When a dynamic dataset is deployed as a Snowflake TABLE (regular or dynamic) the default values of parameters are used, as set in the dynamic dataset configuration.

Using parameters within a SQL interface connection

If there is a SQL interface table or domain called world, and a parameter called param, set it as:

SELECT ...
FROM (
  SELECT *, 12 as "$param" from world
)

The statement above selects from world with 12 as the value of parameter param.

YAML Schema

Every parameter is backed by a text file in git that defines it, and keeps history of every change.

The schema for parameter is:

type: parameter
name: [name]
display_name: [display name]
owner: [owner]
description: |-
  [description]
labels: [...]
folder: [folder]
hidden: [True/False/Yes/No]
value: |-
  [value statement]

Fields:

  • name: Name of parameter (global)
  • value: SQL constant expression (i.e. a number or a string)
  • display_name, owner, description, labels, folder, hidden: Metadata