Esta página define os seguintes termos e conceitos essenciais, que provavelmente vai encontrar com frequência durante o desenvolvimento do LookML:
- Projetos do LookML
- Estruturas principais do LookML (como modelos, vistas e Explores)
- Tabelas derivadas
- Ligações da base de dados
- Sensibilidade a maiúsculas e minúsculas
Os Looks e os painéis de controlo definidos pelo utilizador não são descritos nesta página, uma vez que os utilizadores os criam sem usar LookML. No entanto, as respetivas consultas baseiam-se nos elementos LookML subjacentes abordados nesta página.
Consulte o glossário do Looker para ver uma lista abrangente de termos e definições usados no Looker. Para uma vista geral abrangente dos parâmetros do LookML que pode usar num projeto do LookML, consulte a página de referência rápida do LookML.
Consulte a página de documentação Termos e conceitos partilhados do Looker e Looker Studio para ver informações sobre as nuances entre termos e conceitos semelhantes no Looker e Looker Studio.
Projeto do LookML
No Looker, um projeto é uma coleção de ficheiros que descrevem os objetos, as ligações da base de dados e os elementos da interface do utilizador que vão ser usados para fazer consultas SQL. No nível mais básico, estes ficheiros descrevem a forma como as tabelas da base de dados se relacionam entre si e como o Looker as deve interpretar. Os ficheiros também podem incluir parâmetros LookML que definem ou alteram as opções apresentadas na IU do Looker. Cada projeto do LookML reside no seu próprio repositório Git para controlo de versões.
Depois de associar o Looker à sua base de dados, pode especificar a associação da base de dados a usar para o seu projeto do Looker.
Pode aceder aos seus projetos a partir do menu Develop (Desenvolver) no Looker (consulte o artigo Aceder a ficheiros de projetos para ver detalhes e outras opções).
Consulte a página de documentação Gerar um modelo para obter informações sobre como criar um novo projeto e consulte a página de documentação Aceder e editar informações do projeto para obter informações sobre como aceder e fazer alterações a projetos do LookML existentes.
Partes de um projeto
Conforme mostrado no diagrama, seguem-se alguns dos tipos de ficheiros mais comuns num projeto do LookML:
- Um modelo contém informações sobre as tabelas a usar e como devem ser unidas. Normalmente, aqui define o modelo, as respetivas explorações e as junções.
- Uma vista contém informações sobre como aceder ou calcular informações de cada tabela (ou em várias tabelas unidas). Normalmente, aqui define a vista, as respetivas dimensões e medidas, e os respetivos conjuntos de campos.
- Uma exploração é frequentemente definida num ficheiro de modelo, mas, por vezes, precisa de um ficheiro de exploração separado para uma tabela derivada ou para estender ou refinar uma exploração em vários modelos.
- Um ficheiro de manifesto pode conter instruções para usar ficheiros importados de outro projeto ou para as definições de localização do seu projeto.
Além dos ficheiros de modelo, vista, explorar e manifesto, um projeto pode ter outros tipos de ficheiros relacionados com aspetos como painéis de controlo incorporados, documentação, localização e muito mais. Consulte a página de documentação sobre os ficheiros de projetos do LookML para mais informações sobre estes tipos de ficheiros, bem como os outros tipos de ficheiros que pode ter no seu projeto do LookML.
Estes ficheiros juntos formam um projeto. Se estiver a usar o Git para o controlo de versões, normalmente, cada projeto tem uma cópia de segurança no respetivo repositório Git.
Qual é a origem dos projetos e ficheiros LookML?
A forma mais comum de criar ficheiros do LookML é gerar um projeto do LookML a partir da sua base de dados. Também pode criar um projeto em branco e criar manualmente os respetivos ficheiros LookML.
Quando gera um novo projeto a partir da sua base de dados, o Looker cria um conjunto de ficheiros de base que pode usar como modelo para desenvolver o projeto:
- Vários ficheiros de vista, um ficheiro para cada tabela na base de dados.
- Um ficheiro de modelo. O ficheiro de modelo declara uma exploração para cada vista. Cada declaração de exploração inclui lógica
join
para juntar qualquer visualização que o Looker possa determinar estar relacionada com a exploração.
Aqui, pode personalizar o projeto removendo visualizações e explorações indesejadas, e adicionando dimensões e medidas personalizadas.
Estruturas principais do LookML
Conforme mostrado no diagrama das partes de um projeto, um projeto contém normalmente um ou mais ficheiros de modelos, que contêm parâmetros que definem um modelo e as respetivas explorações e junções. Além disso, os projetos contêm normalmente um ou mais ficheiros de visualização de propriedade, cada um com parâmetros que definem essa visualização de propriedade e os respetivos campos (incluindo dimensões e medidas) e conjuntos de campos. O projeto também pode conter um ficheiro de manifesto do projeto, que lhe permite configurar definições ao nível do projeto. Esta secção descreve essas estruturas principais.
Modelo
Um modelo é um portal personalizado para a base de dados, concebido para oferecer uma exploração de dados intuitiva para utilizadores empresariais específicos. Podem existir vários modelos para a mesma ligação de base de dados num único projeto do LookML. Cada modelo pode expor dados diferentes a utilizadores diferentes. Por exemplo, os agentes de vendas precisam de dados diferentes dos executivos da empresa e, por isso, é provável que desenvolva dois modelos para oferecer vistas da base de dados adequadas a cada utilizador.
Um modelo especifica uma ligação a uma única base de dados. Um programador também define as Explores de um modelo no ficheiro do modelo. Por predefinição, as explorações são organizadas sob o nome do modelo no qual estão definidas. Os utilizadores veem os modelos listados no menu Explorar.
Consulte a página de documentação Tipos de ficheiros num projeto do LookML para mais informações sobre ficheiros de modelos, incluindo a estrutura e a sintaxe geral dos ficheiros de modelos.
Consulte a página de documentação Parâmetros do modelo para ver detalhes sobre os parâmetros do LookML que podem ser usados num ficheiro de modelo.
Ver
Uma declaração de vista define uma lista de campos (dimensões ou medidas) e a respetiva associação a uma tabela subjacente ou a uma tabela derivada. No LookML, uma vista normalmente faz referência a uma tabela de base de dados subjacente, mas também pode representar uma tabela derivada.
Uma vista pode ser associada a outras vistas. Normalmente, a relação entre as vistas é definida como parte de uma declaração Explore num ficheiro de modelo.
Por predefinição, os nomes das vistas aparecem no início dos nomes das dimensões e das métricas na tabela de dados do Explorar. Esta convenção de nomenclatura deixa claro a que vista o campo pertence. No exemplo seguinte, os nomes das vistas Encomendas e Utilizadores são apresentados antes dos nomes dos campos na tabela de dados:
Consulte a documentação Tipos de ficheiros num projeto do LookML para mais informações sobre os ficheiros de visualização, incluindo a estrutura e a sintaxe geral dos ficheiros de visualização.
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 num ficheiro de visualização.
Explore
Uma exploração é uma vista que os utilizadores podem consultar. Pode considerar a secção Explorar como um ponto de partida para uma consulta ou, em termos de SQL, como o FROM
numa declaração SQL. Nem todas as visualizações são explorações, porque nem todas as visualizações descrevem uma entidade de interesse. Por exemplo, uma vista States que corresponde a uma tabela de consulta para nomes de estados não justifica uma análise detalhada, porque os utilizadores empresariais nunca precisam de consultá-la diretamente. Por outro lado, os utilizadores empresariais provavelmente querem uma forma de consultar uma vista Orders e, por isso, faz sentido definir uma exploração para Orders. Consulte a página de documentação Visualizar e interagir com Explores no Looker para obter informações sobre como os utilizadores interagem com os Explores para consultar os seus dados.
No Looker, os utilizadores podem ver as explorações listadas no menu Explorar. As explorações são apresentadas abaixo dos nomes dos modelos aos quais pertencem.
Por convenção, as explorações são declaradas no ficheiro de modelo com o parâmetro explore
. No exemplo seguinte de um ficheiro de modelo, a orders
exploração de uma base de dados de comércio eletrónico é definida no ficheiro de modelo. As vistas orders
e customers
referenciadas na declaração explore
são definidas noutro local, nos respetivos ficheiros 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 associação à base de dados para o modelo, e o parâmetro include
é usado para especificar os ficheiros que vão estar disponíveis para o modelo consultar.
A declaração explore
neste exemplo também especifica relações de junção entre visualizações. Para ver detalhes sobre as join
declarações, visite a secção sobre associações nesta página. Visite a página de documentação Parâmetros de junção para ver mais detalhes acerca dos parâmetros LookML que podem ser usados com o parâmetro join
.
Campos de dimensões e medidas
As vistas contêm campos, principalmente dimensões e medidas, que são os componentes fundamentais das consultas do Looker.
No Looker, uma dimensão é um campo agrupável e pode ser usada para filtrar os resultados da consulta. Pode ser qualquer uma das seguintes opções:
- Um atributo que tem uma associação direta a uma coluna numa tabela subjacente
- Um facto ou um valor numérico
- Um valor derivado, calculado com base nos valores de outros campos numa única linha
No Looker, as dimensões aparecem sempre na cláusula GROUP BY
do SQL que o Looker gera.
Por exemplo, as dimensões de uma vista Produtos podem incluir o nome do produto, o modelo do produto, a cor do produto, o preço do produto, a data de criação do produto e a 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 medidas também é uma medida. As medidas podem ser usadas para filtrar valores agrupados. Por exemplo, as métricas de uma vista Vendas podem incluir o total de artigos 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 respetivo tipo declarado, como string
, number
ou time
. Para medidas, os tipos incluem funções de agregação, como sum
e percent_of_previous
. Para ver detalhes, consulte os tipos de dimensões e os tipos de medidas.
No Looker, os campos são apresentados na página Explorar no selecionador de campos no lado esquerdo da página. Pode expandir uma vista no selecionador de campos para mostrar a lista de campos disponíveis para consulta a partir dessa vista.
Por convenção, os campos são declarados como parte da vista à qual pertencem e armazenados num ficheiro de vista. O exemplo seguinte mostra várias declarações de dimensões e medidas. Repare na utilização do operador de substituição ($
) para referenciar campos sem usar um nome de coluna SQL totalmente definido.
Seguem-se alguns exemplos de declarações de dimensões e métricas:
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 pode definir um dimension_group
, que cria várias dimensões relacionadas com o tempo de uma só vez, e camposfilter
, que têm uma variedade de exemplos de utilização avançados, como filtros baseados em modelos.
Consulte a página de documentação Parâmetros de campo para ver detalhes completos sobre a declaração de campos e as várias definições que podem ser aplicadas aos mesmos.
Aderir
Como parte de uma declaração explore
, cada declaração join
especifica uma vista que pode ser unida à exploração. Quando um utilizador cria uma consulta que inclui campos de várias visualizações, o Looker gera automaticamente uma lógica de junção de SQL para importar todos os campos corretamente.
Segue-se um exemplo de uma junção numa 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, visite a página de documentação Trabalhar com junções no LookML.
Ficheiros de manifesto do projeto
O seu projeto pode conter um ficheiro de manifesto do projeto, que é usado para definições ao nível do projeto, como as que especificam outros projetos a importar para o projeto atual, definem constantes do LookML, especificam definições de localização do modelo e adicionam extensões e visualizações personalizadas ao seu projeto.
Cada projeto só pode ter um ficheiro de manifesto. O ficheiro tem de ter o nome manifest.lkml
e estar localizado no nível principal do seu repositório Git. Quando estiver a usar pastas no IDE, certifique-se de que o ficheiro manifest.lkml
é mantido ao nível raiz da estrutura de diretórios do seu projeto.
Para importar ficheiros LookML de um projeto diferente, use o ficheiro de manifesto do projeto para especificar um nome para o seu projeto atual e a localização de quaisquer projetos externos, que podem ser armazenados local ou remotamente. Por 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 ficheiro de manifesto do projeto, pode usar o parâmetro include
no ficheiro de modelo para adicionar ficheiros desses projetos externos ao seu projeto atual. Por 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 ficheiros de outros projetos.
Para adicionar a localização ao seu modelo, use o ficheiro de manifesto do projeto para especificar as definições de localização predefinidas. Por exemplo:
localization_settings: {
default_locale: en
localization_level: permissive
}
A especificação das predefinições de localização é um passo na localização do seu modelo. Para mais informações, consulte a página de documentação Localizar o seu modelo 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 os campos a apresentar depois de um utilizador analisar detalhadamente os dados. Os conjuntos de detalhe são especificados campo a campo, pelo que tem controlo total sobre os dados apresentados quando um utilizador clica num valor numa tabela ou num painel de controlo. Os conjuntos também podem ser usados como uma funcionalidade de segurança para definir grupos de campos visíveis para utilizadores específicos.
O exemplo seguinte mostra uma declaração definida numa vista order_items
, que define campos que indicam detalhes relevantes sobre um artigo comprado. Tenha em atenção que os campos de referências definidos de outras vistas especificam o âmbito.
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 de utilização completos para conjuntos.
Ver detalhes
No Looker, pode configurar um campo para que os utilizadores possam analisar mais detalhadamente os dados. A análise detalhada funciona em tabelas de resultados de consultas e em painéis de controlo. A detalhamento inicia uma nova consulta restrita pelo valor no qual clica.
O comportamento de detalhe é diferente para dimensões e medidas:
- Quando detalha uma dimensão, a nova consulta é filtrada pelo valor detalhado. Por exemplo, se clicar na data específica numa consulta de encomendas de clientes por data, a nova consulta mostra encomendas apenas nessa data específica.
- Quando detalha uma medida, a nova consulta mostra o conjunto de dados que contribuiu para a medida. Por exemplo, quando detalha uma contagem, a nova consulta mostra as linhas para calcular essa contagem. Quando detalha medidas máximas, mínimas e médias, o detalhe continua a mostrar todas as linhas que contribuíram para essa medida. Isto significa que a análise detalhada de uma medida máxima, por exemplo, mostra todas as linhas que foram usadas para calcular o valor máximo e não apenas uma única linha para o valor máximo.
Os campos a apresentar para a nova consulta de detalhe podem ser definidos por um conjunto ou pelo parâmetro drill_fields
(para campos) ou pelo parâmetro drill_fields
(para vistas).
Tabelas derivadas
Uma tabela derivada é uma consulta cujos resultados são usados como se fosse uma tabela real na base de dados. As tabelas derivadas são criadas através do parâmetro derived_table
numa declaração view
. O Looker acede às tabelas derivadas como se fossem tabelas físicas com o seu próprio conjunto de colunas. Uma tabela derivada é exposta como a sua própria vista e define dimensões e medidas da mesma forma que as vistas convencionais. A vista de uma tabela derivada pode ser consultada e unida a outras vistas, tal como qualquer outra vista.
As tabelas derivadas também podem ser definidas como tabelas derivadas persistentes (PDTs), que são tabelas derivadas escritas num esquema temporário na sua base de dados e regeneradas automaticamente na programação que especificar com uma estratégia de persistência.
Consulte a página de documentação Tabelas derivadas no Looker para mais informações.
Ligação da base de dados
Outro elemento importante de um projeto do LookML é a ligação à base de dados que o Looker usa para executar consultas na sua base de dados. Um administrador do Looker usa a página Ligações para configurar ligações da base de dados, e os programadores do LookML usam o connection
parâmetro num ficheiro de modelo para especificar que ligação usar para o modelo. Se gerar um projeto do LookML a partir da sua base de dados, o Looker preenche automaticamente o parâmetro connection
no ficheiro do modelo.
Sensibilidade a maiúsculas e minúsculas
O LookML é sensível a maiúsculas e minúsculas, por isso, certifique-se de que corresponde às maiúsculas e minúsculas quando se refere a elementos do LookML. O Looker envia-lhe um alerta se tiver feito referência a um elemento que não existe.
Por exemplo, suponhamos que tem uma exploração denominada e_flights_pdt
e um programador de LookML usa letras maiúsculas incorretas (e_FLIGHTS_pdt
) para fazer referência a essa exploração. Neste exemplo, o IDE do Looker mostra um aviso de que o Explore e_FLIGHTS_pdt
não existe. Além disso, o IDE sugere o nome de uma exploração existente, que é e_flights_pdt
:
No entanto, se o seu projeto contivesse e_FLIGHTS_pdt
e e_flights_pdt
, o IDE do Looker não conseguiria corrigir o erro, pelo que teria de ter a certeza da versão pretendida. Geralmente, é uma boa ideia usar letras minúsculas ao atribuir nomes a objetos LookML.
Os nomes das pastas do IDE também são sensíveis a maiúsculas e minúsculas. Tem de fazer corresponder a utilização de letras maiúsculas nos nomes das pastas sempre que especificar caminhos de ficheiros. Por exemplo, se tiver uma pasta denominada Views
, tem de usar as mesmas letras maiúsculas no parâmetro include
. Mais uma vez, o IDE do Looker indica um erro se a capitalização não corresponder a uma pasta existente no seu projeto: