Uma forma de tornar os 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 frequentemente ao longo do seu projeto no parâmetro fields
ou nos campos de detalhe. Se usar um conjunto para agrupar campos repetidos, cria um único local no modelo onde esse grupo de campos pode ser mantido.
Esta página inclui os seguintes exemplos de utilização de conjuntos do LookML para tornar os seus projetos do LookML mais eficientes e fáceis de manter:
- Adicionar os mesmos campos de detalhe a várias medidas: defina campos de detalhe para os detalhes que os utilizadores querem ver normalmente quando exploram as agregações.
- Incluir ou omitir um conjunto de campos de uma exploração: personalize a experiência de exploração para os utilizadores e simplifique a lista de campos que os utilizadores podem escolher no selecionador de campos.
Ingredientes
- O parâmetro
set
do LookML - O parâmetro
fields
do LookML (para explorações) - O parâmetro
drill_fields
do LookML (para campos) - O parâmetro
drill_fields
do LookML (para vistas)
Pré-requisitos
Exemplo: adicionar os mesmos campos de detalhe a várias medidas
Suponhamos que quer que os utilizadores possam analisar detalhadamente os dados para ver detalhes mais específicos dos utilizadores sempre que virem métricas de vendas em Explorações, Looks ou painéis de controlo. Assim, quando selecionarem um valor para a medida Contagem na IU de exploração, é aberta uma consulta nos campos ID, Cidade, Estado e País:
Pode criar um conjunto denominado user_details
que inclua os campos id
, city
, state
e country
e, em seguida, referenciá-los em várias métricas para os seus utilizadores explorarem detalhadamente:
set: user_details {
fields: [id, city, state, country]
}
O conjunto user_details
pode ser usado para definir um campo de detalhe para a medida count
:
measure: count {
type: count
drill_fields: [user_details*]
}
Neste exemplo, a sintaxe [set_name*]
é usada para especificar que os campos no user_details
vão aparecer nos resultados da consulta quando detalhar a medida Count.
Em seguida, pode reutilizar este conjunto para criar campos de detalhe adicionais. Por exemplo, pode adicionar 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*]
}
Tal como acontece com a medida Count, quando um utilizador seleciona um valor para Order Count, Total Sale Price ou Average Sale Price na IU de exploração, o Looker abre uma janela que contém uma consulta nos campos ID, City, State e Country.
Se quiser alterar algo nos campos de detalhe, como adicionar ou remover um campo, só tem de atualizar o conjunto user_details
.
Também pode fazer referência a um conjunto no parâmetro drill_fields
de uma vista para definir campos de detalhe para todas as medidas nessa vista que ainda não tenham campos de detalhe especificados ao nível do campo.
Exemplo: incluir ou omitir um conjunto de campos de uma exploração
Suponhamos que quer simplificar o seletor de campos da funcionalidade Explorar para os utilizadores excluindo campos que não são essenciais para esses utilizadores.
Por exemplo, suponhamos que tem uma users
vista que contém informações sobre os seus clientes, incluindo campos para ID, Nome, Apelido, Email e Idade, bem como campos de localização, como Cidade, Estado, País e Código postal. A vista users
está associada ao Explorar orders
:
E se quiser excluir os campos Nome, Apelido, Email, Idade e Género da funcionalidade Explorar para os seus utilizadores? Pode criar um conjunto denominado user_info
que liste os campos que quer excluir da análise detalhada Encomendas:
O LookML para o conjunto user_info
teria o seguinte aspeto:
set: user_info {
fields: [first_name, last_name, email, age, gender]
}
Para definir uma exploração Encomendas com a etiqueta Encomendas sem dados do utilizador, associe a vista users
à exploração orders
. Adicione o código LookML fields: [ALL_FIELDS*, -users.user_info*]
à exploração orders
para incluir todos os campos, exceto os campos no conjunto user_info
da vista 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
}
}
Uma vez que o conjunto user_details
está excluído da exploração com a sintaxe -users.user_details*
no parâmetro fields
da orders
exploração, a vista Encomendas na exploração Encomendas sem dados do utilizador omite os campos listados no conjunto users_user.info
do selecionador de campos da exploração.
Pode reutilizar o conjunto user_info
para omitir estes campos da IU de exploração para quaisquer outras explorações às quais a visualização de propriedade users
esteja associada. Se quiser alterar algo no conjunto user_info
, como adicionar ou remover um campo, só tem de atualizar o conjunto user_info
.