LookML Quick Reference

LookML
Version

On this Page
Docs Menu

LookML is typically organized into 3 types of files: models, views, and dashboards. This page includes every possible LookML parameter, how it is used, and the typical type of file that it is used in. Please note that some parameters cannot be used at the same time. You can read more about each parameter by going to the appropriate reference page.

Model LookML Jump to Example Below Go to Reference Page
Explore LookML Jump to Example Below Go to Reference Page
Join LookML Jump to Example Below Go to Reference Page
View LookML Jump to Example Below Go to Reference Page
Field LookML Jump to Example Below Go to Reference Page
Dashboard LookML Jump to Example Below Go to Reference Page

Starting in release 4.16, projects may include a Project Manifest file that lets you import files from external projects. For more information, see this Discourse article.

Model File

- label: 'desired label name' - connection: connection_name - include: filename_or_pattern # Possibly more include declarations - fiscal_month_offset: N - persist_for: N (seconds | minutes | hours) - case_sensitive: true | false - week_start_day: monday | tuesday | wednesday | thursday | friday | saturday | sunday - value_formats: - name: desired_format_name value_format: 'excel-style formatting string' # Possibly more value formats   - explore: view_name label: 'desired label name' description: 'description string' symmetric_aggregates: true | false hidden: true | false fields: [field_or_set, field_or_set, ...]   sql_always_where: SQL WHERE condition always_filter: field_name: 'looker filter expression' conditionally_filter: field_name: 'looker filter expression' unless: [field_or_set, field_or_set, ...] access_filters: - user_attribute: user_attribute_name field: fully_scoped_field # Possibly more user_attribute declarations   always_join: [view_name, view_name, ...] joins: - join: view_name type: left_outer | full_outer | inner | cross relationship: one_to_one | many_to_one | one_to_many | many_to_many from: view_name sql_table_name: table_name view_label: 'desired label name' fields: [field_or_set, field_or_set, ...] required_joins: [view_name, view_name, ...] foreign_key: dimension_name sql_on: SQL ON clause # Possibly more join declarations   persist_for: N (seconds | minutes | hours) from: view_name view: view_name case_sensitive: true | false sql_table_name: table_name cancel_grouping_fields: [fully_scoped_field, fully_scoped_field, ...]   # Possibly more explore declarations
label: "desired label name" connection: "connection_name" include: "filename_or_pattern" fiscal_month_offset: N # Possibly more include declarations   persist_for: "N (seconds | minutes | hours)" case_sensitive: yes | no week_start_day: monday | tuesday | wednesday | thursday | friday | saturday | sunday named_value_format: desired_format_name { value_format: "excel-style formatting string" } # Possibly more named value formats   explore: view_name { label: "desired label name" description: "description string" symmetric_aggregates: yes | no hidden: yes | no fields: [field_or_set, field_or_set, ...] sql_always_where: SQL WHERE condition ;;   always_filter: { filters: { field: field_name value: "looker filter expression" } }   conditionally_filter: { filters: { field: field_name value: "looker filter expression" } unless: [field_or_set, field_or_set, ...] }   access_filter: { field: fully_scoped_field user_attribute: user_attribute_name }   always_join: [view_name, view_name, ...]   join: view_name { type: left_outer | full_outer | inner | cross relationship: one_to_one | many_to_one | one_to_many | many_to_many from: view_name sql_table_name: table_name ;; view_label: "desired label name" fields: [field_or_set, field_or_set, ...] required_joins: [view_name, view_name, ...] foreign_key: dimension_name sql_on: SQL ON clause ;; } # Possibly more join declarations   persist_for: "N (seconds | minutes | hours)" from: view_name view_name: view_name case_sensitive: true | false sql_table_name: table_name ;; cancel_grouping_fields: [fully_scoped_field, fully_scoped_field, ...] } # Possibly more explore declarations

View File

- view: view_name sql_table_name: table_name suggestions: true | false   derived_table: sql: SQL query persist_for: N (seconds | minutes | hours) sql_trigger_value: SQL query distribution: column_name distribution_style: ALL | EVEN sortkeys: [column_name, column_name, ...] indexes: [column_name, column_name, ...]   sets: set_name: - field_or_set - field_or_set - ... # Possibly more set declarations   fields: - (dimension | dimension_group | measure | filter): field_name label: 'desired label name' view_label: 'desired label name' group_label: 'desired label name' description: 'description string' hidden: true | false alias: [old_field_name, old_field_name, ...] value_format: 'excel-style formatting string' value_format_name: format_name html: HTML expression using Liquid template elements sql: SQL expression to generate the field value required_fields: [field_name, field_name, ...] drill_fields: [field_or_set, field_or_set, ...] can_filter: true | false fanout_on: repeated_record_name tags: ['string1', 'string2', ...]   # DIMENSION SPECIFIC PARAMETERS   type: dimension_field_type primary_key: true | false sql_case: value: SQL condition value: SQL condition # Possibly more sql_case statements alpha_sort: true | false tiers: [N, N, ...] style: classic | interval | integer | relational sql_latitude: SQL expression to generate a latitude sql_longitude: SQL expression to generate a longitude suggestable: true | false suggest_persist_for: N (seconds | minutes | hours) suggest_dimension: dimension_name suggest_explore: explore_name suggestions: ['suggestion string', 'suggestion string', ...] bypass_suggest_restrictions: true | false full_suggestions: true | false skip_drill_filter: true | false case_sensitive: true | false order_by_field: dimension_name map_layer: name_of_map_layer links: - label: 'desired label name' url: desired_url icon_url: url_of_an_ico_file # Possibly more links   # DIMENSION GROUP SPECIFIC PARAMETERS   timeframes: [timeframe, timeframe, ...] convert_tz: true | false datatype: epoch | timestamp | datetime | date | yyyymmdd   # MEASURE SPECIFIC PARAMETERS   type: measure_field_type direction: row | column approximate: true | false approximate_threshold: N percentile: Nth percentile sql_distinct_key: SQL expression to define repeated entities list_field: dimension_name filters: dimension_name: 'looker filter expression' # Possibly more filters statements   # FILTER SPECIFIC PARAMETERS   default_value: 'desired default value'   # Possibly more dimension or measure declarations
view: view_name { sql_table_name: table_name ;; suggestions: yes | no   derived_table: { sql: SQL query ;; persist_for: "N (seconds | minutes | hours)" sql_trigger_value: SQL query ;; distribution: "column_name" distribution_style: all | even sortkeys: ["column_name", "column_name", "..."] indexes: ["column_name", "column_name", "..."] }   set: set_name { fields: [field_or_set, field_or_set, ...] # Possibly more set declarations }   (dimension | dimension_group | measure | filter): field_name { label: "desired label name" view_label: "desired label name" group_label: "desired label name" description: "description string" hidden: yes | no alias: [old_field_name, old_field_name, ...] value_format: "excel-style formatting string" value_format_name: format_name html: HTML expression using Liquid template elements ;; sql: SQL expression to generate the field value ;; required_fields: [field_name, field_name, ...] drill_fields: [field_or_set, field_or_set, ...] can_filter: yes | no fanout_on: repeated_record_name tags: ["string1", "string2", ...]   # DIMENSION SPECIFIC PARAMETERS   type: dimension_field_type primary_key: yes | no case: { when: { sql: SQL condition ;; label: "value" } # Possibly more when statements } alpha_sort: yes | no tiers: [N, N, ...] style: classic | interval | integer | relational sql_latitude: SQL expression to generate a latitude ;; sql_longitude: SQL expression to generate a longitude ;; suggestable: yes | no suggest_persist_for: "N (seconds | minutes | hours)" suggest_dimension: dimension_name suggest_explore: explore_name suggestions: ["suggestion string", "suggestion string", "..."] bypass_suggest_restrictions: yes | no full_suggestions: yes | no skip_drill_filter: yes | no case_sensitive: yes | no order_by_field: dimension_name map_layer_name: name_of_map_layer   link: { label: "desired label name;" url: "desired_url" icon_url: "url_of_an_ico_file" } # Possibly more links   # DIMENSION GROUP SPECIFIC PARAMETERS   timeframes: [timeframe, timeframe, ...] convert_tz: yes | no datatype: epoch | timestamp | datetime | date | yyyymmdd   # MEASURE SPECIFIC PARAMETERS   type: measure_field_type direction: "row | column" approximate: yes | no approximate_threshold: N sql_distinct_key: SQL expression to define repeated entities ;; list_field: dimension_name percentile: Nth percentile   filters: { field: dimension_name value: "looker filter expression" } # Possibly more filters statements   # FILTER SPECIFIC PARAMETERS   default_value: "desired default value" } # Possibly more dimension or measure declarations }

Dashboard File

- dashboard: dashboard_name title: 'desired dashboard title' layout: tile | static | grid rows: - elements: [element_name, element_name, ...] height: N tile_size: N width: N show_applied_filters: true | false refresh: N (seconds | minutes | hours | days) auto_run: true | false filters: - name: filter_name title: 'desired filter title' type: field_filter | number_filter | date_filter | string_filter explore: explore_name field: view_name.field_name default_value: Looker filter expression elements: - name: element_name title: 'desired element name' type: table | single_value | looker_single_record | looker_column | looker_bar | looker_scatter | looker_line | looker_area | looker_pie | looker_donut_multiples | looker_geo_coordinates | looker_geo_choropleth height: N width: N top: N left: N refresh: N (seconds | minutes | hours | days) note: text: 'note text' state: collapsed | expanded display: above | below | hover # QUERY PARAMETERS model: model_name explore: explore_name dimensions: [dimension_name, dimension_name, ...] measures: [measure_name, measure_name, ...] sorts: [field_name, field_name, ...] pivots: [dimension_name, dimension_name, ...] limit: N filters: dimension_or_measure_name: 'looker filter expression' # Possibly more filters statements listen: dashboard_filter_name: dimension_or_measure_name # Possibly more listen statements # TABLE PARAMETERS total: true | false row_total: right | left | false # SINGLE VALUE PARAMETERS font_size: small | medium | large # CHART PARAMETERS (column, bar, scatter, line, area, pie, donut multiples) colors: [css_color, css_color, ...] series_colors: series_name: css_color # Possibly more series color assignments series_labels: series_name: desired series label # Possibly more series label assignments # CARTESIAN CHART PARAMETERS (column, bar, scatter, line, area) hidden_series: [series_name, series_name, ...] hide_legend: true | false stacking: normal | percent | '' show_dropoff: true | false show_value_labels: true | false show_view_names: true | false swap_axes: true | false series_types: series_name: line | column | area | scatter # Possibly more series visualization assignments x_axis_label: desired x-axis label x_axis_label_rotation: N x_padding_left: N x_padding_right: N x_axis_gridlines: true | false show_x_axis_label: true | false show_x_axis_ticks: true | false y_axis_orientation: [left | right, left | right, ...] y_axis_combined: true | false y_axis_labels: ['desired y-axis label', 'desired y-axis label', ...] y_axis_min: [N, N, ...] y_axis_max: [N, N, ...] y_axis_gridlines: true | false show_y_axis_labels: true | false show_y_axis_ticks: true | false y_axis_tick_density: default | custom y_axis_tick_density_custom: N reference_lines: - value: see documentation label: 'desired label name' color: css_color # Possibly more reference lines # COLUMN AND BAR PARAMETERS show_null_labels: true | false # SCATTER, LINE, AND AREA PARAMETERS x_axis_scale: auto | linear | time | ordinal x_axis_datetime_tick_count: N x_axis_datetime_label: 'time formatting string' show_null_points: true | false # LINE AND AREA PARAMETERS hide_points: true | false interpolation: linear | monotone | step | step-before | step-after discontinuous_nulls: true | false # PIE PARAMETERS inner_radius: N% # DONUT MULTIPLE PARAMETERS charts_across: N # MAP PARAMETERS map: usa | world map_url: 'url to map topojson' map_object_key: map_name map_projection: d3_map_projection inner_border_color: css_color inner_border_width: N outer_border_color: css_color outer_border_width: N # COORDINATE MAP PARAMETERS point_color: css_color map_color: css_color point_radius: N # CHOROPLETH MAP PARAMETERS colors: [css_color, css_color, ...] quantize_colors: true | false empty_color: css_color map_property_key: topo_json_property map_property_label_key: topo_json_property # Possibly more element declarations
Still have questions?
Go to Discourse - or - Email Support
Top