Termos e conceitos do LookML

Esta página define os seguintes termos e conceitos principais, que você provavelmente vai encontrar com frequência durante o desenvolvimento do LookML:

As visualizações e os painéis definidos pelo usuário não são descritos nesta página, porque os usuários os criam sem usar o LookML. No entanto, as consultas dependem dos elementos do LookML discutidos nesta página.

Consulte o glossário do Looker para conferir uma lista completa de termos e definições usados no Looker. Para uma visão geral abrangente dos parâmetros do LookML que podem ser usados em um projeto do LookML, consulte a página Referência rápida do LookML.

Consulte a página de documentação Termos e conceitos compartilhados entre o Looker e o Looker Studio para saber mais sobre as diferenças, semelhanças e nuances dos termos e conceitos nas duas ferramentas.

projeto do LookML

No Looker, um projeto é uma coleção de arquivos que descrevem os objetos, as conexões de banco de dados e os elementos da interface do usuário que serão usados para realizar consultas SQL. No nível mais básico, esses arquivos descrevem como as tabelas do banco de dados se relacionam entre si e como o Looker deve interpretá-las. Os arquivos também podem incluir parâmetros LookML que definem ou mudam as opções apresentadas na UI do Looker. Cada projeto LookML fica no próprio repositório Git para controle de versão.

Depois de conectar o Looker ao seu banco de dados, você pode especificar a conexão do banco de dados a ser usada no projeto do Looker.

Você pode acessar seus projetos no menu Develop do Looker. Consulte Como acessar arquivos de projeto para conferir detalhes e outras opções.

Consulte a página de documentação Como gerar um modelo para saber como criar um novo projeto e a página de documentação Como acessar e editar informações do projeto para saber como acessar e fazer alterações em projetos do LookML.

Partes de um projeto

Um projeto do LookML pode conter modelos, visualizações e painéis do LookML, cada um deles é composto por outros elementos do LookML.

Conforme mostrado no diagrama, estes são alguns dos tipos de arquivos mais comuns em um projeto do LookML:

  • Um modelo contém informações sobre quais tabelas usar e como elas devem ser mescladas. Aqui, você geralmente define o modelo, as análises e as mesclagens.
  • Uma visualização contém informações sobre como acessar ou calcular informações de cada tabela (ou em várias tabelas mescladas). Aqui, você normalmente define a visualização, as dimensões e medidas e os conjuntos de campos.
  • Uma Análise detalhada geralmente é definida em um arquivo de modelo, mas às vezes é necessário um arquivo de Análise detalhada separado para uma tabela derivada ou para ampliar ou refinar uma Análise detalhada em vários modelos.
  • Um arquivo de manifesto pode conter instruções para usar arquivos importados de outro projeto ou para as configurações de localização do projeto.

Além dos arquivos de modelo, visualização, Análise e manifesto, um projeto pode ter outros tipos de arquivos relacionados a painéis integrados, documentação, localização e muito mais. Consulte a página de documentação Arquivos de projeto do LookML para mais informações sobre esses tipos de arquivos e outros que você pode ter no seu projeto do LookML.

Esses arquivos juntos formam um projeto. Se você estiver usando o Git para controle de versões, cada projeto normalmente terá um backup no próprio repositório Git.

De onde vêm os projetos e arquivos do LookML?

A maneira mais comum de criar arquivos do LookML é gerar um projeto do LookML no seu banco de dados. Também é possível criar um projeto em branco e os arquivos do LookML manualmente.

Ao gerar um novo projeto no banco de dados, o Looker cria um conjunto de arquivos de referência que podem ser usados como modelo para criar o projeto:

  • Vários arquivos de visualização, um para cada tabela no banco de dados.
  • Um arquivo model. O arquivo de modelo declara uma Exploração para cada visualização. Cada declaração de Análise inclui a lógica join para agrupar qualquer visualização que o Looker possa determinar como relacionada à Análise.

Aqui, você pode personalizar o projeto removendo visualizações e análises detalhadas indesejadas e adicionando dimensões e métricas personalizadas.

Principais estruturas do LookML

Como mostrado nas partes de um diagrama de projeto, um projeto geralmente contém um ou mais arquivos de modelo, que contêm parâmetros que definem um modelo e as análises e mesclagens dele. Além disso, os projetos geralmente contêm um ou mais arquivos de visualização, cada um com parâmetros que definem essa visualização e os campos dela (incluindo dimensões e medidas) e conjuntos de campos. O projeto também pode conter um arquivo de manifesto do projeto, que permite configurar as configurações do projeto. Esta seção descreve essas estruturas principais.

Modelo

Um modelo é um portal personalizado para o banco de dados, projetado para fornecer uma análise de dados intuitiva para usuários corporativos específicos. Vários modelos podem existir para a mesma conexão de banco de dados em um único projeto do LookML. Cada modelo pode expor dados diferentes para usuários diferentes. Por exemplo, os agentes de vendas precisam de dados diferentes dos executivos da empresa. Portanto, você provavelmente desenvolveria dois modelos para oferecer visualizações do banco de dados adequadas a cada usuário.

Um modelo especifica uma conexão com um único banco de dados. O desenvolvedor também define as Análises do modelo no arquivo do modelo. Por padrão, as Análises são organizadas pelo nome do modelo em que são definidas. Os usuários encontram os modelos listados no menu Explorar.

Consulte a página de documentação Tipos de arquivos em um projeto do LookML para mais informações sobre arquivos de modelo, incluindo a estrutura e a sintaxe geral.

Consulte a página de documentação Parâmetros do modelo para saber mais sobre os parâmetros do LookML que podem ser usados em um arquivo de modelo.

Ver

Uma declaração de visualização define uma lista de campos (dimensões ou medições) e a vinculação deles a uma tabela subjacente ou derivada. No LookML, uma visualização geralmente faz referência a uma tabela de banco de dados, mas também pode representar uma tabela derivada.

Uma visualização pode se juntar a outras. A relação entre as visualizações geralmente é definida como parte de uma declaração Explore em um arquivo de modelo.

Por padrão, os nomes das visualizações aparecem no início dos nomes das dimensões e das métricas na tabela de dados do recurso Analisar. Essa convenção de nomenclatura deixa claro a qual visualização o campo pertence. No exemplo a seguir, os nomes das visualizações Pedidos e Usuários são listados antes dos nomes dos campos na tabela de dados:

Tabela de dados de uma consulta de exemplo com os campos "Data de criação dos pedidos", "ID dos usuários" e "Contagem de pedidos" selecionados.

Consulte a documentação Tipos de arquivos em um projeto do LookML para mais informações sobre arquivos de visualização, incluindo a estrutura e a sintaxe geral.

Consulte a página de documentação Parâmetros de visualização para saber mais sobre os parâmetros do LookML que podem ser usados em um arquivo de visualização.

Explorar

Uma análise é uma visualização que os usuários podem consultar. Pense na Análise como um ponto de partida para uma consulta ou, em termos de SQL, como FROM em uma instrução SQL. Nem todas as visualizações são da guia "Explorar", porque nem todas descrevem uma entidade de interesse. Por exemplo, uma visualização Estados que corresponde a uma tabela de pesquisa de nomes de estados não justifica uma Análise detalhada, porque os usuários de negócios nunca precisam consultar diretamente. Por outro lado, os usuários empresariais provavelmente querem uma maneira de consultar uma visualização Pedidos. Portanto, faz sentido definir uma seção "Explorar" para Pedidos. Consulte a página de documentação Como visualizar e interagir com as Análises no Looker para saber como os usuários interagem com as Análises para consultar seus dados.

No Looker, os usuários podem conferir as análises detalhadas listadas no menu Análise. As análises detalhadas são listadas abaixo dos nomes dos modelos a que pertencem.

Por convenção, as análises são declaradas no arquivo de modelo com o parâmetro explore. Neste exemplo de arquivo de modelo, a análise orders para um banco de dados de e-commerce é definida no arquivo de modelo. As visualizações orders e customers que são referenciadas na declaração explore são definidas em outro lugar, nos respectivos arquivos de visualização.

connection: order_database
include: "filename_pattern"

explore: orders {
  join: customers {
    sql_on: ${orders.customer_id} = ${customers.id} ;;
  }
}

Neste exemplo, o parâmetro connection é usado para especificar a conexão de banco de dados do modelo, e o parâmetro include é usado para especificar os arquivos que vão estar disponíveis para o modelo fazer referência.

A declaração explore neste exemplo também especifica relações de mesclagem entre visualizações. Para saber mais sobre declarações join, acesse a seção sobre junções nesta página. Acesse a página de documentação Parâmetros de mesclagem para mais detalhes sobre os parâmetros do LookML que podem ser usados com o parâmetro join.

Campos de dimensão e medida

As visualizações contêm campos, principalmente dimensões e medidas, que são os elementos básicos das consultas do Looker.

No Looker, uma dimensão é um campo que pode ser agrupado e pode ser usado para filtrar os resultados da consulta. Pode ser um destes:

  • Um atributo que tem uma associação direta a uma coluna em uma tabela subjacente
  • Um fato ou valor numérico
  • Um valor derivado, calculado com base nos valores de outros campos em uma única linha

No Looker, as dimensões sempre aparecem na cláusula GROUP BY do SQL gerado.

Por exemplo, as dimensões de uma visualização Produtos podem incluir nome, modelo, cor, preço, data de criação e data de desativação do produto.

Uma medida é um campo que usa uma função de agregação SQL, como COUNT, SUM, AVG, MIN ou MAX. Qualquer campo calculado com base nos valores de outras medidas também é uma medida. As medidas podem ser usadas para filtrar valores agrupados. Por exemplo, as métricas de uma visualização Vendas podem incluir o total de itens vendidos (uma contagem), o preço total de venda (uma soma) e o preço médio de venda (uma média).

O comportamento e os valores esperados de um campo dependem do tipo declarado, como string, number ou time. Para medidas, os tipos incluem funções de agregação, como sum e percent_of_previous. Para mais detalhes, consulte tipos de dimensão e tipos de métrica.

No Looker, os campos são listados na página Explorar no seletor de campos no lado esquerdo da página. É possível expandir uma visualização no seletor de campos para mostrar a lista de campos disponíveis para consulta nessa visualização.

Por convenção, os campos são declarados como parte da visualização a que pertencem, armazenados em um arquivo de visualização. O exemplo a seguir mostra várias declarações de dimensão e medida. Observe o uso do operador de substituição ($) para fazer referência a campos sem usar um nome de coluna SQL com escopo total.

Confira alguns exemplos de declarações de dimensões e medidas:

view: orders {
  dimension: id {
    primary_key: yes
    type: number
    sql: ${TABLE}.id ;;
  }
  dimension: customer_id {
    sql: ${TABLE}.customer_id ;;
  }
  dimension: amount {
    type: number
    value_format: "0.00"
    sql: ${TABLE}.amount ;;
  }
  dimension_group: created {
    type: time
    timeframes: [date, week]
    sql: ${TABLE}.created_at ;;
  }
  measure: count {
    type: count           # creates sql COUNT(orders.id)
    sql: ${id} ;;
  }
  measure: total_amount {
    type: sum             # creates sql SUM(orders.amount)
    sql: ${amount} ;;
  }
}

Também é possível definir um dimension_group, que cria várias dimensões relacionadas ao tempo de uma só vez, e campos filter, que têm vários casos de uso avançados, como filtros com modelos.

Consulte a página de documentação Parâmetros de campo para conferir detalhes completos sobre a declaração de campos e as várias configurações que podem ser aplicadas a eles.

Mesclagens

Como parte de uma declaração explore, cada declaração join especifica uma visualização que pode ser mesclada à Explorar. Quando um usuário cria uma consulta que inclui campos de várias visualizações, o Looker gera automaticamente a lógica de mesclagem SQL para trazer todos os campos corretamente.

Confira um exemplo de junção em uma declaração explore:

# file: ecommercestore.model.lookml

connection: order_database
include: "filename_pattern"   # include all the views

explore: orders {
  join: customers {
    sql_on: ${orders.customer_id} = ${customers.id} ;;
  }
}

Para mais detalhes, acesse a página de documentação Como trabalhar com mesclagens no LookML.

Arquivos de manifesto do projeto

Seu projeto pode conter um arquivo de manifesto do projeto, que é usado para configurações no nível do projeto, como especificar outros projetos para importar para o projeto atual, definir constantes do LookML, especificar configurações de localização do modelo e adicionar extensões e visualizações personalizadas ao projeto.

Cada projeto pode ter apenas um arquivo de manifesto. O arquivo precisa ser nomeado como manifest.lkml e estar localizado no nível raiz do repositório do Git. Ao usar pastas no ambiente de desenvolvimento integrado, mantenha o arquivo manifest.lkml no nível raiz da estrutura de diretórios do projeto.

Para importar arquivos do LookML de um projeto diferente, use o arquivo de manifesto do projeto para especificar um nome para o projeto atual e o local de projetos externos, que podem ser armazenados localmente ou remotamente. Exemplo:

# This project
project_name: "my_project"

# The project to import
local_dependency: {
  project: "my_other_project"
}

remote_dependency: ga_360_block {
  url: "https://github.com/llooker/google_ga360"
  ref: "4be130a28f3776c2bf67a9acc637e65c11231bcc"
}

Depois de definir os projetos externos no arquivo de manifesto do projeto, use o parâmetro include no arquivo de modelo para adicionar arquivos desses projetos externos ao projeto atual. Exemplo:

include: "//my_other_project/imported_view.view"
include: "//ga_360_block/*.view"

Para mais informações, consulte a página de documentação Importar arquivos de outros projetos.

Para adicionar a localização ao modelo, use o arquivo de manifesto do projeto para especificar as configurações de localização padrão. Exemplo:

localization_settings: {
  default_locale: en
  localization_level: permissive
}

Especificar as configurações de localização padrão é uma etapa na localização do modelo. Para mais informações, consulte a página de documentação Como localizar seu modelo do LookML.

Conjuntos

No Looker, um conjunto é uma lista que define um grupo de campos usados em conjunto. Normalmente, os conjuntos são usados para especificar quais campos serão mostrados depois que um usuário detalhar os dados. Os conjuntos de detalhamento são especificados campo por campo, para que você tenha controle total sobre quais dados são exibidos quando um usuário clica em um valor em uma tabela ou painel. Os conjuntos também podem ser usados como um recurso de segurança para definir grupos de campos que são visíveis para usuários específicos. O exemplo a seguir mostra uma declaração de conjunto em uma visualização order_items, definindo campos que listam detalhes relevantes sobre um item comprado. O conjunto de campos de referência de outras visualizações especifica o escopo.

set: order_items_stats_set {
  fields: [
    id,  # scope defaults to order_items view
    orders.created_date,  # scope is "orders" view
    orders.id,
    users.name,
    users.history,  # show all products this user has purchased
    products.item_name,
    products.brand,
    products.category,
    total_sale_price
  ]
}

Consulte a página de documentação do parâmetro set para conferir todos os detalhes de uso dos conjuntos.

Detalhar

No Looker, é possível configurar um campo para que os usuários possam detalhar ainda mais os dados. A análise detalhada funciona em tabelas de resultados de consulta e em painéis. A análise detalhada inicia uma nova consulta restrita pelo valor em que você clica.

O comportamento de detalhamento é diferente para dimensões e medidas:

  • Quando você detalha uma dimensão, a nova consulta é filtrada pelo valor detalhado. Por exemplo, se você clicar na data em uma consulta de pedidos de clientes por data, a nova consulta vai mostrar apenas os pedidos feitos nessa data.
  • Ao analisar uma medida, a nova consulta vai mostrar o conjunto de dados que contribuiu para a medida. Por exemplo, ao analisar uma contagem, a nova consulta vai mostrar as linhas para calcular essa contagem. Ao detalhar as medidas máximas, mínimas e médias, o detalhamento ainda mostra todas as linhas que contribuíram para essa medida. Isso significa que, ao detalhar uma medida máxima, por exemplo, todas as linhas usadas para calcular o valor máximo são mostradas, e não apenas uma única linha.

Os campos a serem mostrados na nova consulta detalhada podem ser definidos por um conjunto ou pelo parâmetro drill_fields (para campos) ou drill_fields (para visualizações).

Tabelas derivadas

Uma tabela derivada é uma consulta cujos resultados são usados como se fossem uma tabela real no banco de dados. As tabelas derivadas são criadas usando o parâmetro derived_table em uma declaração view. O Looker acessa tabelas derivadas como se fossem tabelas físicas com um conjunto de colunas. Uma tabela derivada é exposta como uma visualização própria e define dimensões e medições da mesma maneira que as visualizações convencionais. A visualização de uma tabela derivada pode ser consultada e mesclada a outras visualizações, assim como qualquer outra.

As tabelas derivadas também podem ser definidas como tabelas derivadas persistentes (PDTs, na sigla em inglês), que são gravadas em um esquema inicial no seu banco de dados e regeneradas automaticamente na programação especificada com uma estratégia de persistência.

Consulte a página de documentação Tabelas derivadas no Looker para mais informações.

Conexão com o banco de dados

Outro elemento importante de um projeto do LookML é a conexão do banco de dados que o Looker usa para executar consultas no seu banco de dados. Um administrador do Looker usa a página de conexões para configurar as conexões do banco de dados, e os desenvolvedores do LookML usam o parâmetro connection em um arquivo de modelo para especificar qual conexão usar no modelo. Se você gerar um projeto do LookML com base no seu banco de dados, o Looker vai preencher automaticamente o parâmetro connection no arquivo do modelo.

Diferenciação entre maiúsculas e minúsculas

O LookML diferencia maiúsculas de minúsculas. Por isso, use a mesma maiúscula e minúscula ao se referir a elementos do LookML. O Looker alerta você se você se referir a um elemento que não existe.

Por exemplo, suponha que você tenha uma Análise de dados chamada e_flights_pdt e que um desenvolvedor do LookML use letras maiúsculas incorretas (e_FLIGHTS_pdt) para fazer referência a essa Análise de dados. Neste exemplo, o ambiente de desenvolvimento integrado do Looker mostra um aviso de que a análise e_FLIGHTS_pdt não existe. Além disso, o ambiente de desenvolvimento integrado sugere o nome de uma Análise existente, que é e_flights_pdt:

No entanto, se o projeto contiver e_FLIGHTS_pdt e e_flights_pdt, o ambiente de desenvolvimento integrado do Looker não poderá corrigir você. Portanto, você precisa ter certeza de qual versão você quer. Geralmente, é recomendável usar letras minúsculas ao nomear objetos do LookML.

Os nomes de pastas do ambiente de desenvolvimento integrado também diferenciam maiúsculas de minúsculas. É preciso usar letras maiúsculas e minúsculas nos nomes das pastas sempre que especificar caminhos de arquivo. Por exemplo, se você tiver uma pasta chamada Views, use a mesma maiúscula no parâmetro include. Novamente, o ambiente de desenvolvimento integrado do Looker vai indicar um erro se a maiúscula não corresponder a uma pasta existente no projeto:

O ambiente de desenvolvimento integrado do Looker mostra um aviso informando que a inclusão não corresponde a nenhum arquivo.