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:

Looks e 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 subjacentes do LookML discutidos nesta página.

Consulte o glossário do Looker para uma lista abrangente de termos e definições usados em todo o Looker. Para ter 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.

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 de 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 alteram as opções apresentadas na UI do Looker. Cada projeto do LookML fica no próprio repositório Git para controle de versões.

Depois de conectar o Looker ao banco de dados, especifique a conexão do banco de dados a ser usada no seu projeto do Looker.

Acesse seus projetos no menu Desenvolver do Looker. Consulte Como acessar arquivos de projetos para conferir mais detalhes e outras opções.

Consulte Como criar um novo projeto do LookML para informações sobre como criar um novo projeto e consulte Como acessar e editar informações do projeto para obter informações sobre como acessar e fazer alterações em projetos do LookML existentes.

Partes de um projeto

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

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

  • Um model contém informações sobre quais tabelas usar e como elas devem ser unidas. Aqui, você normalmente define o modelo, as Análises e as mesclagens dele.
  • 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, suas dimensões e medidas e seus conjuntos de campos.
  • Geralmente, uma Análise é definida dentro de um arquivo de modelo, mas às vezes você precisa de um arquivo separado para uma tabela derivada ou para estender ou refinar uma Análise 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 seu projeto.

Além de modelar, visualizar, explorar e arquivos de manifesto, um projeto pode ter outros tipos de arquivos relacionados a itens como 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, bem como sobre outros tipos de arquivos 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, o backup de cada projeto normalmente é feito pelo 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 do seu banco de dados. Também é possível criar um projeto em branco e criar manualmente os arquivos LookML dele. Também é possível criar um projeto clonando um repositório Git existente.

Quando você gera um novo projeto no seu banco de dados, o Looker cria um conjunto de arquivos de referência que pode ser usado como modelo para criar o projeto:

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

Aqui, você pode personalizar o projeto removendo visualizações e Análises indesejadas e adicionando dimensões e medições personalizadas.

Principais estruturas do LookML

Conforme mostrado nas partes de um diagrama de projeto, um projeto normalmente contém um ou mais arquivos de modelo, com 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 contendo parâmetros que definem a visualização e seus campos (incluindo dimensões e medidas) e conjuntos de campos. O projeto também pode conter um arquivo de manifesto, que permite definir configurações no nível do projeto. Esta seção descreve essas estruturas principais.

Modelo

Um modelo é um portal personalizado para o banco de dados, projetado para oferecer exploração de dados intuitiva para usuários comerciais 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 distintos. 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 apropriadas para cada usuário.

Um modelo especifica uma conexão com um único banco de dados. Um desenvolvedor também define as Análises de um modelo no arquivo do modelo. Por padrão, as Análises são organizadas de acordo com o nome do modelo em que são definidas. Os usuários vão encontrar 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 sintaxe geral dos arquivos de modelo.

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

View

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

Uma visualização pode ser mesclada a outras. Normalmente, o relacionamento entre visualizações é definido 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 da dimensão e da medição na tabela de dados da Análise. Essa convenção de nomenclatura deixa claro a qual visualização o campo pertence. No exemplo a seguir, os nomes de visualização Pedidos e Usuários são listados antes dos nomes dos campos na tabela de dados:

Tabela de dados de um exemplo de consulta 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 sintaxe geral deles.

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

Conheça o

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 o FROM em uma instrução SQL. Nem todas as visualizações são "Análises", porque nem todas descrevem uma entidade de interesse. Por exemplo, uma visualização States que corresponde a uma tabela de consulta de nomes de estados não justifica uma Análise, porque os usuários comerciais nunca precisam fazer consultas diretas. Por outro lado, os usuários comerciais provavelmente querem uma maneira de consultar uma visualização Orders. Portanto, é recomendável definir uma Análise para Orders. Consulte a página de documentação Como visualizar e interagir com Análises no Looker para saber como os usuários interagem com as Análises para consultar seus dados.

No Looker, seus usuários podem conferir as Análises listadas no menu Análise. As Análises estã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 de 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 do banco de dados para o modelo, e o parâmetro include é usado para especificar os arquivos que estarão disponíveis para o modelo referenciar.

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

Campos de dimensão e medição

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

No Looker, uma dimensão é um campo agrupável e pode ser usada para filtrar resultados de consulta. Ele pode ser qualquer um dos seguintes:

  • um atributo, que tem uma associação direta com 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 pelo Looker.

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

Uma medida é um campo que usa uma função agregada SQL, como COUNT, SUM, AVG, MIN ou MAX. Qualquer campo calculado com base nos valores de outros valores de medição também é uma medição. As medidas podem ser usadas para filtrar valores agrupados. Por exemplo, as medidas da visualização Vendas podem incluir o total de itens vendidos (uma contagem), o preço de venda total (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 medições, 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 medidas.

No Looker, os campos são listados na página Explorar do seletor de campo, no lado esquerdo da página. É possível expandir uma visualização no seletor de campo 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, armazenada em um arquivo de visualização. O exemplo a seguir mostra várias declarações de dimensão e medição. Observe o uso do operador de substituição ($) para referenciar campos sem usar um nome de coluna SQL com escopo total.

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

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} ;;
  }
}

Você também pode 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 ver detalhes completos sobre como declarar 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 à Análise. Quando um usuário cria uma consulta que inclui campos de várias visualizações, o Looker gera automaticamente uma lógica de mesclagem SQL para inserir todos os campos corretamente.

Confira um exemplo de mesclagem 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, que é usado para configurações no nível do projeto, como as usadas para especificar outros projetos a serem importados 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 Git. Ao usar pastas no ambiente de desenvolvimento integrado, confira se o arquivo manifest.lkml é mantido no nível raiz da estrutura de diretórios do seu 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 dos projetos externos, que podem ser armazenados local 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, use o parâmetro include no arquivo de modelo para adicionar arquivos desse projeto externo ao atual. Exemplo:

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

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

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

localization_settings: {
  default_locale: en
  localization_level: permissive
}

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

Conjuntos

No Looker, um conjunto é uma lista que define um grupo de campos usados juntos. Normalmente, os conjuntos são usados para especificar quais campos serão exibidos depois que um usuário detalhar os dados. Os conjuntos de detalhamento são especificados campo a campo. Assim, você tem 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 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 faz referência a campos de outras visualizações especificando 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 ver detalhes completos de uso dos conjuntos.

Detalhar

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

O comportamento do detalhamento é diferente para dimensões e medições:

  • Quando você detalha uma dimensão, a nova consulta filtra o valor detalhado. Por exemplo, se você clicar na data específica em uma consulta de pedidos de clientes por data, a nova consulta mostrará os pedidos apenas nessa data específica.
  • Ao detalhar uma medição, a nova consulta vai mostrar o conjunto de dados que contribuiu para a medição. Por exemplo, ao detalhar uma contagem, a nova consulta vai mostrar as linhas para calcular essa contagem. Ao detalhar as medidas máxima, mínima e média, ele ainda mostra todas as linhas que contribuíram para essa medição. Isso significa que o detalhamento de uma medida máxima, por exemplo, mostra todas as linhas usadas para calcular o valor máximo, não apenas uma linha para o valor máximo.

Os campos que vão ser mostrados na nova consulta de detalhamento 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 fosse 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 o próprio 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 em outras visualizações, assim como qualquer outra visualização.

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

Para mais informações, consulte a página de documentação Tabelas derivadas no Looker.

Conexão com o banco de dados

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

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

O LookML diferencia maiúsculas de minúsculas. Por isso, é importante fazer essa correspondência ao se referir a elementos do LookML. O Looker avisa se você mencionou um elemento que não existe.

Por exemplo, suponha que você tenha uma Análise chamada e_flights_pdt e que um desenvolvedor do LookML use a capitalização incorreta (e_FLIGHTS_pdt) para se referir a ela. Neste exemplo, o ambiente de desenvolvimento integrado do Looker mostra um aviso de que o e_FLIGHTS_pdt da Análise não existe. Além disso, o ambiente de desenvolvimento integrado sugere o nome de uma Análise atual, 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 vai conseguir corrigir você. Portanto, é preciso saber qual é a versão que você queria. Geralmente, é uma boa ideia usar letras minúsculas ao nomear objetos do LookML.

Os nomes da pasta do ambiente de desenvolvimento integrado também diferenciam maiúsculas de minúsculas. O uso de letras maiúsculas e minúsculas dos nomes das pastas precisa ser igual a sempre que você especificar caminhos de arquivos. Por exemplo, se você tiver uma pasta com o nome Views, use a mesma capitalização no parâmetro include. Novamente, o ambiente de desenvolvimento integrado do Looker vai indicar um erro se o uso de maiúsculas e minúsculas não corresponder a uma pasta no seu projeto:

O Looker IDE mostra um aviso informando que a inclusão não corresponde a nenhum arquivo.