Esta página define os principais termos e conceitos a seguir, que você provavelmente encontrará durante o desenvolvimento do LookML:
- Projetos do LookML
- Principais estruturas do LookML (como modelos, visualizações e explorações)
- Tabelas derivadas
- Conexões de banco de dados
- Diferenciação entre maiúsculas e minúsculas
Aparências 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 deles dependem dos elementos LookML subjacentes que são discutidos nesta página.
Consulte o glossário do Looker para ver uma lista abrangente de termos e definições usados em todo o Looker. Para uma visão geral abrangente dos parâmetros do LookML que você pode usar em um projeto do LookML, consulte a página de referência rápida do LookML.
projeto do LookML
No Looker, um projeto é um conjunto de arquivos que descreve 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 as interpreta. Eles também podem incluir parâmetros LookML que definem ou alteram as opções apresentadas na UI do Looker. Cada projeto LookML reside em seu próprio repositório Git para o controle de versão.
Depois de conectar o Looker ao seu banco de dados, especifique a conexão a ser usada no projeto do Looker.
É possível acessar seus projetos na seção Desenvolver da navegação do Looker.
Consulte Como criar um novo projeto 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 LookML existentes.
Partes de um projeto
Como mostrado no diagrama acima, estes são alguns dos tipos mais comuns de arquivos em um projeto do LookML:
- Um modelo contém informações sobre quais tabelas usar e como elas devem ser unidas. Aqui, normalmente você define o modelo, as explorações e as junções.
- Uma visualização contém informações sobre como acessar ou calcular informações de cada tabela (ou em várias tabelas mescladas). Aqui, normalmente você define a visualização, suas dimensões e medidas e seus conjuntos de campos.
- Uma exploração geralmente é definida em um arquivo de modelo, mas, às vezes, você precisa de um arquivo de exploração separado para uma tabela derivada ou para estender ou refinar uma exploração 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 dos tipos de arquivo acima, 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 dos arquivos de projeto do LookML para ver mais informações sobre esses tipos de arquivos, bem como os outros tipos de arquivos que você pode ter no projeto do LookML.
Esses arquivos juntos formam um projeto. Se você estiver usando o Git para o controle de versão, cada projeto terá normalmente um backup com o próprio repositório Git.
De onde vêm os projetos e arquivos do LookML?
A maneira mais comum de criar arquivos LookML é gerar um projeto LookML do seu banco de dados. Também é possível criar um projeto em branco e criar manualmente os arquivos LookML ou criar um projeto clonando um repositório Git existente.
Quando você gera um novo projeto do seu banco de dados, o Looker cria um conjunto de valores de referência que podem ser usados como modelo para criar o projeto:
- Vários arquivos de visualização, um arquivo para cada tabela no banco de dados.
- um arquivo de modelo; O arquivo de modelo declara uma exploração para cada visualização. Cada declaração "Explorar" inclui a lógica
join
para ser associada a qualquer visualização que o Looker possa determinar e que está relacionada à ferramenta.
Aqui, é possível personalizar o projeto removendo visualizações e explorações indesejadas e adicionando dimensões e medidas personalizadas.
Principais estruturas do LookML
Conforme mostrado nas partes de um diagrama do projeto, um projeto geralmente contém um ou mais arquivos de modelo, que contêm parâmetros que definem um modelo e as explorações e mesclagens dele. Além disso, os projetos normalmente contêm um ou mais arquivos de visualização, cada um contendo parâmetros que definem essa visualização e seus campos (incluindo dimensões e medidas) e conjuntos de campos. O projeto também pode conter um arquivo de manifesto do projeto, que permite definir configurações para envolvidos no projeto. Esta seção descreve essas principais estruturas.
Modelo
Um modelo é um portal personalizado no banco de dados, projetado para fornecer exploração de dados intuitiva para usuários empresariais específicos. Vários modelos podem existir para a mesma conexão de banco de dados em um único projeto 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 apropriadas para cada usuário.
Um modelo especifica uma conexão com um único banco de dados. Um desenvolvedor também define as explorações no arquivo de modelo. Por padrão, as análises detalhadas são organizadas com base no nome do modelo em que são definidas. Seus usuários veem 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 LookML que podem ser usados em um arquivo de modelo.
Exibir
Uma declaração de visualização define uma lista de campos (dimensões ou medidas) e sua vinculação a uma tabela subjacente ou derivada. No LookML, uma visualização geralmente faz referência a uma tabela de banco de dados subjacente, mas também pode representar uma tabela derivada.
Uma visualização pode ser associada a outras. A relação entre as visualizações normalmente é definida como parte de uma declaração Explore em um arquivo de modelo.
Por padrão, os nomes de vistas aparecem no início da dimensão e medem nomes na tabela "Explorar dados". 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:
Consulte a documentação Tipos de arquivos em um projeto LookML para mais informações sobre arquivos de visualização, incluindo a estrutura e sintaxe geral dos arquivos de visualização.
Consulte a página de documentação Parâmetros de visualização para ver detalhes sobre os parâmetros LookML que podem ser usados em um arquivo de visualização.
Explorar
Uma exploração é uma visualização que os usuários podem consultar. Pense na exploração como um ponto de partida para uma consulta, ou em termos SQL, como a FROM
em uma instrução SQL. Nem todas as visualizações são "Explorar", porque nem todas elas descrevem uma entidade de interesse. Por exemplo, uma visualização Estados correspondente a uma tabela de consulta para nomes de estado não garante uma exploração, porque os usuários comerciais nunca precisam consultá-la diretamente. Por outro lado, os usuários corporativos provavelmente querem uma maneira de consultar uma vista da propriedade Pedidos. Portanto, faz sentido definir uma exploração para Pedidos.
No Looker, seus usuários podem ver a opção "Explorar" no menu Explorar. As explorações estão listadas abaixo dos nomes dos modelos.
Por convenção, as explorações são declaradas no arquivo de modelo com o parâmetro explore
. Neste exemplo de arquivo de modelo, a exploração orders
de um banco de dados de comércio eletrônico é definida no arquivo de modelo. As visualizações orders
e customers
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} ;;
}
}
No exemplo acima, 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
no exemplo acima também especifica as relações de mesclagem entre visualizações. Para detalhes sobre as declarações join
, acesse a seção sobre mesclagens nesta página. Acesse a página de documentação Parâmetros de mesclagem para ver mais detalhes sobre os parâmetros do LookML que podem ser usados com o parâmetro join
.
Campos de dimensão e avaliação
As vistas da propriedade contêm campos, principalmente dimensões e medidas, que são os elementos fundamentais das consultas do Looker.
No Looker, uma dimensão é um campo agrupável e pode ser usado para filtrar os resultados da consulta. Você pode usar:
- 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 que o Looker gera.
Por exemplo, as dimensões de uma visualização Produtos podem incluir nome, modelo, cor, preço, data de criação e data de fim de vida 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 outros valores de medida também é uma medida. As medidas podem ser usadas para filtrar valores agrupados. Por exemplo, as medidas para uma vista da propriedade Vendas podem incluir o total de itens vendidos (uma contagem), o preço total da venda (uma soma) e o preço médio de venda (uma média).
O comportamento e os valores esperados para 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 os tipos de dimensão e os tipos de métricas.
No Looker, os campos são listados na página Explorar no seletor de campo à esquerda da página. Você pode 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, 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 referenciar campos sem usar um nome de coluna SQL com escopo completo.
Veja 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} ;;
}
}
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 modelo.
Consulte a página de documentação Parâmetros de campo para 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 a 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 do SQL para exibir todos os campos corretamente.
Veja 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
O projeto pode conter um arquivo de manifesto do projeto que é usado para configurações no nível do projeto, por exemplo, 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 seu projeto.
Cada projeto pode ter apenas um arquivo de manifesto. O arquivo precisa ter o nome manifest.lkml
e estar localizado no nível raiz do seu repositório Git. Ao usar pastas no ambiente de desenvolvimento integrado, verifique se o arquivo manifest.lkml
é mantido no nível raiz da estrutura de diretórios do seu projeto.
Para importar arquivos 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 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 desse projeto 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 Importação de arquivos de outros projetos.
Para adicionar 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 para a 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 exibidos depois que um usuário detalhar os dados. Os conjuntos de detalhamento são especificados por 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 definida 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 todos os detalhes de uso dos conjuntos.
Detalhar
No Looker, é possível detalhar todos os campos configurados dessa maneira ao escrever um LookML. O detalhamento funciona em tabelas e painéis de resultados de consulta. O detalhamento inicia uma nova consulta que é restrita pelo valor em que você clicou.
O comportamento do detalhamento é diferente para dimensões e medidas:
- Ao detalhar uma dimensão, a nova consulta filtra o valor de detalhamento. Por exemplo, se você clicar em uma data específica em uma consulta de pedidos do cliente por data, a nova consulta mostrará os pedidos somente nessa data.
- Ao detalhar uma medida, a nova consulta mostrará o conjunto de dados que contribuiu para ela. Por exemplo, ao detalhar uma contagem, a nova consulta mostrará as linhas para calcular essa contagem. Ao detalhar métricas máxima, mínima e média, o detalhamento ainda mostrará todas as linhas que contribuíram para essa medida. Isso significa que o detalhamento em uma medida máxima, por exemplo, mostra todas as linhas que foram usadas para calcular o valor máximo, não apenas uma única linha para o valor máximo.
Os campos a serem exibidos 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 sua própria visualização usando o parâmetro derived_table
e define dimensões e medidas da mesma maneira que as visualizações convencionais. A visualização de uma tabela derivada pode ser consultada e combinada a outras visualizações, assim como qualquer outra.
As tabelas derivadas também podem ser definidas como tabelas derivadas permanentes (PDTs, na sigla em inglês), que são tabelas derivadas gravadas em um esquema de rascunho no banco de dados e geradas automaticamente de novo na programação que você especificar com uma estratégia de persistência.
Consulte a página de documentação Tabelas derivadas no Looker (em inglês) 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 usará para executar consultas no seu 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 LookML do seu banco de dados, o Looker preencherá automaticamente o parâmetro connection
no arquivo de modelo.
Diferenciação entre maiúsculas e minúsculas
LookML diferencia maiúsculas de minúsculas. Por isso, verifique se a correspondência entre maiúsculas e minúsculas se refere a elementos LookML. O Looker alerta se você mencionou um elemento que não existe.
Por exemplo, suponha que você tenha uma exploração chamada e_flights_pdt
e um desenvolvedor do LookML use letras maiúsculas (e_FLIGHTS_pdt
) incorretamente para fazer referência a essa exploração. Neste exemplo, o ambiente de desenvolvimento integrado do Looker mostra um aviso de que e_FLIGHTS_pdt
não existe. Além disso, o ambiente de desenvolvimento integrado sugere o nome de uma exploração existente, que é e_flights_pdt
:
No entanto, se o projeto continha e_FLIGHTS_pdt
e e_flights_pdt
, o ambiente de desenvolvimento integrado do Looker não conseguirá corrigir você. Portanto, é necessário ter certeza de qual versão você pretendia. Geralmente, é uma boa ideia usar letras minúsculas ao nomear objetos LookML.
Os nomes das pastas IDE também diferenciam maiúsculas e minúsculas. É necessário corresponder a capitalização dos nomes de pastas sempre que você especificar caminhos de arquivo. Por exemplo, se você tiver uma pasta chamada Views
, use a mesma capitalização no parâmetro include
. Novamente, o ambiente de desenvolvimento integrado do Looker indicará um erro se as letras maiúsculas não corresponderem a uma pasta existente no projeto: