# Looker Integration Discovered Resources

## Overview

The Looker integration discovers the following resources:

* LookML Explore
* LookML View
* Looker Dimension
* Looker Measure
* Looker Folder
* Looker Look
* Looker Tile
* Looker Dashboard
* Table

Note: We don't observe built-in looker models `i__looker` and `system__activity`

## Looker Folder

### Properties

| Property   | Value                                                                      |
| ---------- | -------------------------------------------------------------------------- |
| name       | The name of the folder.                                                    |
| native\_id | The ID of the folder in Looker's API                                       |
| parent     | The parent folder of this folder. Null if the folder has no parent folder. |
| created at | Stores the date the resource was created within the native application.    |
| created by | The email of the user that created the folder                              |

## LooML: Views & Explores

| Property                                                                    | Value                                                                                                                                                                                                                                                                                                                                                                                                           | Applicable to |
| --------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- |
| name                                                                        | The title of the LookML file                                                                                                                                                                                                                                                                                                                                                                                    | View, Explore |
| description                                                                 |                                                                                                                                                                                                                                                                                                                                                                                                                 | View, Explore |
| sql\_dialect                                                                | The SQL dialect of the query powering the visualization                                                                                                                                                                                                                                                                                                                                                         | View, Explore |
| looker\_project\_name                                                       | The name of the LookML project containing the LookML model                                                                                                                                                                                                                                                                                                                                                      | View, Explore |
| looker\_model                                                               | The name of the LookML model powering the visualization                                                                                                                                                                                                                                                                                                                                                         | View, Explore |
| type                                                                        | `looker_view`, `looker_explore`                                                                                                                                                                                                                                                                                                                                                                                 | View, Explore |
| native\_id                                                                  | The ID of the look/tile in the Looker instance                                                                                                                                                                                                                                                                                                                                                                  | View, Explore |
| parent\_container                                                           | For views and explores, this is the Looker project containing it.                                                                                                                                                                                                                                                                                                                                               | View, Explore |
| is\_derived                                                                 | Stores whether the view is derived.                                                                                                                                                                                                                                                                                                                                                                             | View          |
| derived\_type                                                               | Stores the type of derived view: `sql_derived_view`, `native_derived_view`. This property is set to null for looker views that are not derived.                                                                                                                                                                                                                                                                 | View          |
| has\_refinements                                                            | Indicates whether the view includes refinements                                                                                                                                                                                                                                                                                                                                                                 | View          |
| looker\_refinement\_chain                                                   | Specifies the location of the refinements applied to the view.                                                                                                                                                                                                                                                                                                                                                  | View          |
| pdt\_builds\_last\_30d                                                      | Total number of PDT builds in the last 30 days.                                                                                                                                                                                                                                                                                                                                                                 | View          |
| pdt\_total\_build\_time\_30d                                                | Cumulative build time for PDTs in the last 30 days.                                                                                                                                                                                                                                                                                                                                                             | View          |
| lookml\_view\_persistency                                                   | Defines the persistency triggers for PDTs in Looker, such as `sql_trigger`, `datagroup_trigger`, or `interval_trigger`.                                                                                                                                                                                                                                                                                         | View          |
| git\_repo\_url                                                              | The URL of the associated Git repository.                                                                                                                                                                                                                                                                                                                                                                       | View, Explore |
| git\_rep\_branch                                                            | The branch of the Git repository being used.                                                                                                                                                                                                                                                                                                                                                                    | View, Explore |
| <p>total\_queries\_14d<br>total\_queries\_30d<br>total\_queries\_60</p>     | <p>The number of queries the resource is found within over the last 14/30/60 days, taken from the Looker API (not from a db connection)<br><br><strong>Note</strong>: This number is for all queries including cached.</p>                                                                                                                                                                                      | View, Explore |
| <p>distinct\_users\_14d<br>distinct\_users\_30d<br>distinct\_users\_60d</p> | <p>The number of distinct users querying the resource is found within over the last 14/30/60 days, taken from the Looker API (not from a db connection)<br><br>Note: The distinct user count <strong>does</strong> support a user-level breakdown, which you can access via the Euno Assistant or from the resource side panel. However, this breakdown is <strong>not</strong> available via an EQL query.</p> | View, Explore |
| source\_path                                                                | The complete file path of the resource, including both directory and filename (e.g., for Git-hosted projects, this would be like `models/sales/orders.view.lkml`).                                                                                                                                                                                                                                              | View, Explore |
| source\_directory                                                           | Stores the entire path of the location of the resource, such as the entire file directory path in your git hosting solution.                                                                                                                                                                                                                                                                                    | View, Explore |
| table\_dependencies                                                         | list of resources (tables/views/explores) that the resource has upstream                                                                                                                                                                                                                                                                                                                                        | View, Explore |

## LookML Refinements

Euno discovers refinement files; however, unlike regular views, refinement files do not constitute resources themselves. Instead, Euno includes the refinement information in the view that it refines. For views with refinements, the property `has_refinements` will be set to `true`. Additionally, in the [About tab](https://docs.euno.ai/using-euno/data-model-screen#unri9kmp2usw-1) of the refined resource's [side panel](https://docs.euno.ai/using-euno/data-model-screen#xgdhrrj8g7h9), the property `looker_refinement_chain` is displayed, indicating the file locations of the refinement files that refine the resource. When viewing the code of the refined resource, it includes the dimensions and measures from the refinement file as if it were compiled.

{% hint style="info" %}
Currently Euno does not support the discovery of refinement files for LookML Explores.
{% endhint %}

## Looker data visualizations: Looker Look, Looker Tile and Looker Dashboards

The term "Looker Tile" is used to describe a visualization in a Looker Dashboard that is not a reference to a Looker Look.

{% hint style="info" %}
In Looker, a dashboard is made up of *dashboard elements*. Some *dashboard elements* are data visualizations, which can either reference a Looker Look, or a visualization that "lives" inside the dashboard. Looker documentation uses the terms *lookless* and *tile* to describe the latter type of visualization. Euno uses the more commonly used term *tile*.
{% endhint %}

| name                                                             | The title of the visualization                                                                                                                                                                                                                                                                                                                                                                  | Look, Tile, Dashboard |
| ---------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
| type                                                             | `looker_look`, `looker_tile`, `looker_dashboard`                                                                                                                                                                                                                                                                                                                                                | Look, Tile, Dashboard |
| description                                                      | The description of the resource                                                                                                                                                                                                                                                                                                                                                                 | Look, Dashboard       |
| sql\_dialect                                                     | The SQL dialect of the query powering the visualization                                                                                                                                                                                                                                                                                                                                         | Look, Tile            |
| looker\_model                                                    | The name of the LookML model powering the visualization                                                                                                                                                                                                                                                                                                                                         | Look, Tile            |
| looker\_project\_name                                            | The name of the LookML project containing the LookML model                                                                                                                                                                                                                                                                                                                                      | Look, Tile            |
| looker\_folder                                                   | The name of the Looker folder the item is found within                                                                                                                                                                                                                                                                                                                                          | Look, Dashboard       |
| created\_at                                                      | Stores the date the resource was created within the native application                                                                                                                                                                                                                                                                                                                          | Look, Tile, Dashboard |
| updated\_at                                                      | For Looker tiles, an update includes all updates to the tile or the dashboard containing it                                                                                                                                                                                                                                                                                                     | Look, Tile, Dashboard |
| native\_id                                                       | The ID of the look/tile in the Looker instance                                                                                                                                                                                                                                                                                                                                                  | Look, Tile, Dashboard |
| created\_by                                                      | The display name of the Looker user that created the Look                                                                                                                                                                                                                                                                                                                                       | Look                  |
| updated\_by                                                      | The display name of the Looker user that last updated the Look                                                                                                                                                                                                                                                                                                                                  | Look                  |
| owner                                                            | The display name of the owner of the dashboard.                                                                                                                                                                                                                                                                                                                                                 | Dashboard             |
| parent\_container                                                | For Looks, this is the Looker Folder containing it. For Tiles, this is the Looker dashboard containing the tile.                                                                                                                                                                                                                                                                                | Look, Tile            |
| <p>last\_7d\_views,</p><p>last\_30d\_views</p>                   | The total number of impressions for this Look over the last 7 (30) days                                                                                                                                                                                                                                                                                                                         | Look, Dashboard       |
| last\_viewed\_at                                                 | The last impression time of the Look                                                                                                                                                                                                                                                                                                                                                            | Look, Dashboard       |
| total\_queries\_14d, total\_queries\_30d, total\_queries\_60d    | <p>The number of queries the resource is found within over the last 14/30/60 days, taken from the Looker API (not from a db connection).<br><br><strong>Note:</strong> This number includes all queries, including cached ones.</p>                                                                                                                                                             | Look, Tile, Dashboard |
| distinct\_users\_14d, distinct\_users\_30d, distinct\_users\_60d | <p>The number of distinct users querying the resource over the last 14/30/60 days, taken from the Looker API (not from a db connection)<br><br>Note: The distinct user count <strong>does</strong> support a user-level breakdown, which you can access via the Euno Assistant or from the resource side panel. However, this breakdown is <strong>not</strong> available via an EQL query.</p> | Look, Tile, Dashboard |
| table\_dependencies                                              | list of explores that the resource has upstream                                                                                                                                                                                                                                                                                                                                                 | Look, Tile            |

## LookML and Looker Measures and Dimensions

Euno observes fields in both LookML files (views and explores) and visualizations (looks and tiles). For visualizations, Looker may make use of [Custom Fields](https://cloud.google.com/looker/docs/custom-fields). Euno observes each custom field as a resource in the same manner as a LookML measure or dimension. A custom measure, including a filtered custom measure, is observed with the type `looker_measure`. A custom dimension is observed with the type `looker_dimension`.

Euno observes fields in both LookML files (views and explores) and visualizations (looks and tiles). For visualizations, Looker may make use of Custom Fields. Euno observes each custom field as a resource in the same manner as a LookML measure or dimension. A custom measure, including a filtered custom measure, is observed with the type `looker_measure`.

A custom dimension is observed with the type `looker_dimension`. Looker dimension groups are also observed as dimensions with the type `looker_dimension`.

| Property                                                                    | Value                                                                                                                                                                                                                                                                                                                                                                                                            |
| --------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| name                                                                        | The name of the Looker measure or dimension                                                                                                                                                                                                                                                                                                                                                                      |
| type                                                                        | `looker_measure` or `looker_dimension`                                                                                                                                                                                                                                                                                                                                                                           |
| parent\_container                                                           | The URI of the visualization where the field is defined                                                                                                                                                                                                                                                                                                                                                          |
| is\_calculated                                                              | Indicates whether the resource is a custom field `true`                                                                                                                                                                                                                                                                                                                                                          |
| is\_identity\_transformation                                                | For measures or dimensions that directly reference an existing column in the data warehouse, the property is set to `true`; otherwise, it is set to `false`. For custom fields, this property is always set to `false`.                                                                                                                                                                                          |
| <p>total\_queries\_14d<br>total\_queries\_30d<br>total\_queries\_60d</p>    | <p>The number of queries the resource is found within over the last 14/30/60 days, taken from the Looker API (not from a db connection).<br><br><strong>Note</strong>: This number is for all queries including cached.</p>                                                                                                                                                                                      |
| <p>distinct\_users\_14d<br>distinct\_users\_30d<br>distinct\_users\_60d</p> | <p>The number of distinct users querying the resource is found within over the last 14/30/60 days, taken from the Looker API (not from a db connection).<br><br>Note: The distinct user count <strong>does</strong> support a user-level breakdown, which you can access via the Euno Assistant or from the resource side panel. However, this breakdown is <strong>not</strong> available via an EQL query.</p> |
| tags                                                                        | A list of tags associated with the measure or dimension, as defined in the LookML file.                                                                                                                                                                                                                                                                                                                          |
| source\_directory                                                           | Stores the entire path of the location of the resource, such as the entire file directory path in your git hosting solution.                                                                                                                                                                                                                                                                                     |
| source\_path                                                                | The complete file path of the resource, including both directory and filename (e.g., for Git-hosted projects, this would be like `models/sales/orders.view.lkml`)                                                                                                                                                                                                                                                |
| upstream\_fields                                                            | A list of fields (column/looker\_dimension/looker\_measure) that the resource has upstream.                                                                                                                                                                                                                                                                                                                      |

## Table

The Looker Integration will discover resources of type Table when it discovers a LookML view that refers to a database table. For example, if a LookML view is using the [`sql_table_name`](https://cloud.google.com/looker/docs/reference/param-view-sql-table-name) parameter, Euno will observe the referred table.

To determine the exact location of the referred table, the Looker Integration looks up the correct [Looker Connection](https://cloud.google.com/looker/docs/admin-panel-database-connections) using the LookML Model's [connection parameter](https://cloud.google.com/looker/docs/reference/param-model-connection). The Looker Connection usually has all the metadata required for Euno to uniquely determine the URI of the referred table.

In the case of a connection with dialect `athena`, The Looker Integration is not able to fetch from Looker's API the term "AWS account id" which is required to uniquely identify the referred tables. In this case, Euno defaults to using the aws account id `default_aws_account.us_central1` . If you have multiple AWS accounts and you need to distinguish between them, set up manual "connection mapping".

| Property             | Value                                                                      |
| -------------------- | -------------------------------------------------------------------------- |
| name                 | The name of the table.                                                     |
| database\_technology | The technology of the database, based on the the dialect of the connection |
| database             | The name of the database                                                   |
| schema               | The name of the schema                                                     |

## Relationships

### Containment (parent/child)

| Source Resource                    | Relationship | Target Resource                                           |
| ---------------------------------- | ------------ | --------------------------------------------------------- |
| looker\_dimension, looker\_measure | is child of  | looker\_view, looker\_explore, looker\_tile, looker\_look |
| looker\_view, looker\_explore      | is child of  | looker\_project                                           |
| looker\_look, looker\_dashboard    | is child of  | looker\_folder                                            |
| looker\_tile                       | is child of  | looker\_dashboard                                         |

### Resource Lineage (upstream/downstream)

| Source Resource | Relationship   | Target Resource                                                              |
| --------------- | -------------- | ---------------------------------------------------------------------------- |
| table           | is upstream of | looker\_view                                                                 |
| looker\_view    | is upstream of | looker\_view, looker\_explore                                                |
| looker\_explore | is upstream of | looker\_view, looker\_explore, looker\_look, looker\_tile, looker\_dashboard |
| looker\_tile    | is upstream of | looker\_dashboard                                                            |
| looker\_look    | is upstream of | looker\_dashboard                                                            |
| dbt\_metric     | is upstream of | looker\_view                                                                 |

### Column Level Lineage (upstream\_fields/downstream\_fields)

| Source Field      | Relationship           | Target Field                       |
| ----------------- | ---------------------- | ---------------------------------- |
| column            | is upstream\_fields of | looker\_dimension, looker\_measure |
| looker\_dimension | is upstream\_fields of | looker\_dimension, looker\_measure |
| dbt\_metric       | is upstream\_fields of | looker\_measure                    |

{% hint style="info" %}
Euno does not currently support column-level lineage for Looker derived views when the referenced upstream tables or columns are not observed through an authoritative source integration (such as dbt, Snowflake, BigQuery or Databricks). If the columns are only referenced in the Looker SQL and not part of an observed schema, they will not appear in lineage.
{% endhint %}
