Uma maneira de tornar seus projetos do LookML mais eficientes e fáceis de manter é com o parâmetro set
do LookML. O parâmetro set
permite agrupar campos que podem ser repetidos com frequência em todo o projeto no parâmetro fields
ou em campos de detalhamento. Se você usar um conjunto para agrupar campos repetidos, vai criar um único lugar no modelo em que esse grupo de campos pode ser mantido.
Esta página inclui os seguintes exemplos de uso de conjuntos do LookML para tornar seus projetos mais eficientes e fáceis de manter:
- Adicionar os mesmos campos de detalhamento a várias métricas: defina campos de detalhamento para os detalhes que os usuários geralmente querem ver ao detalhar agregações.
- Incluir ou omitir um conjunto de campos de uma análise detalhada: personalize a experiência da análise detalhada para os usuários e simplifique a lista de campos que eles podem escolher no seletor de campos.
Componentes
- O parâmetro
set
da LookML - O parâmetro
fields
do LookML (para análises detalhadas) - O parâmetro
drill_fields
do LookML (para campos) - O parâmetro
drill_fields
do LookML (para visualizações)
Pré-requisitos
Exemplo: adicionar os mesmos campos de detalhamento a várias métricas
Suponha que você queira que seus usuários possam detalhar para ver informações mais granulares sempre que encontrarem métricas de vendas em análises detalhadas, Looks ou painéis. Assim, ao selecionar um valor para a métrica Contagem na interface de análise detalhada, uma consulta será aberta nos campos ID, Cidade, Estado e País:
Você pode criar um conjunto chamado user_details
que inclui os campos id
, city
, state
e country
e, em seguida, referenciá-los em várias métricas para que os usuários possam detalhar:
set: user_details {
fields: [id, city, state, country]
}
O conjunto user_details
pode ser usado para definir um campo de detalhamento para a métrica count
:
measure: count {
type: count
drill_fields: [user_details*]
}
Neste exemplo, a sintaxe [set_name*]
é usada para especificar que os campos em user_details
vão aparecer nos resultados da consulta quando você detalhar a métrica Contagem.
Em seguida, você pode reutilizar esse conjunto para criar outros campos de detalhamento. Por exemplo, adicione o código LookML drill_fields: [user_details*]
às medidas order_count
, total_sale_price
e average_sale_price
:
measure: order_count {
view_label: "Orders"
type: count_distinct
description: "Number of orders"
sql: ${order_id} ;;
drill_fields: [user_details*]
}
measure: total_sale_price {
type: sum
value_format_name: usd
sql: ${sale_price} ;;
drill_fields: [user_details*]
}
measure: average_sale_price {
type: average
value_format_name: usd
sql: ${sale_price} ;;
drill_fields: [user_details*]
}
Assim como na métrica Contagem, quando um usuário seleciona um valor para Contagem de pedidos, Preço total de venda ou Preço médio de venda na interface de análise detalhada, o Looker abre uma janela com uma consulta nos campos ID, Cidade, Estado e País.
Se você quiser mudar algo nos campos de detalhamento, como adicionar ou remover um campo, basta atualizar o conjunto user_details
.
Você também pode referenciar um conjunto no parâmetro drill_fields
de uma visualização para definir campos de detalhamento para todas as métricas dessa visualização que ainda não têm campos de detalhamento especificados no nível do campo.
Exemplo: incluir ou omitir um conjunto de campos de uma análise detalhada
Suponha que você queira simplificar o seletor de campos da análise detalhada para os usuários excluindo campos que não são cruciais para eles.
Por exemplo, suponha que você tenha uma visualização users
com informações sobre seus clientes, incluindo campos para ID, Nome, Sobrenome, E-mail e Idade, além de campos de local como Cidade, Estado, País e CEP. A visualização users
é unida à análise orders
:
E se você quiser excluir os campos Nome, Sobrenome, E-mail, Idade e Gênero da análise detalhada para seus usuários? Você pode criar um conjunto chamado user_info
que lista os campos que você quer excluir da análise detalhada Pedidos:
A LookML para o conjunto user_info
seria assim:
set: user_info {
fields: [first_name, last_name, email, age, gender]
}
Para definir uma Análise detalhada de Pedidos com o rótulo Pedidos sem dados do usuário, faça a junção da visualização users
à Análise detalhada orders
. Adicione o código LookML fields: [ALL_FIELDS*, -users.user_info*]
à análise detalhada orders
para incluir todos os campos, exceto os do conjunto user_info
da visualização users
:
explore: orders {
fields: [ALL_FIELDS*, -users.user_info*]
label: "Orders Without User Data"
join: users {
type: left_outer
sql_on: ${orders.user_id} = ${users.id} ;;
relationship: many_to_one
}
}
Como o conjunto user_details
é excluído da análise detalhada com a sintaxe -users.user_details*
no parâmetro fields
da análise detalhada orders
, a visualização Pedidos na análise detalhada Pedidos sem dados do usuário omite os campos listados no conjunto users_user.info
do seletor de campos da análise detalhada.
Você pode reutilizar o conjunto user_info
para omitir esses campos da interface de análise detalhada em qualquer outra análise detalhada associada à visualização users
. Se você quiser mudar algo no conjunto user_info
, como adicionar ou remover um campo, basta atualizar o conjunto user_info
.